Transparent ansiktsutsnitt avledet av Kiki-kattebildet levert av forfatteren
Tilbake til salen

Kiki

Arbeidssignaler og agentutførelse

Slik at et forslag blir den ansvarliges utførelse.

En Paperclip-plugin og en Slack-innsamler som hjelper et team å drifte AI-agentene sine.

2026.04 — 2026.05

pinxlab AI-FoU, frilans · planlegging og utvikling av arbeidsflyt, undersøkelse av utførelse som stopper opp, og design av gjenopprettingsstien

  • PluginImplementert · Paperclip
  • MCP-serverImplementert · Slack-innsamler

Kiki vocabulary

Lens
Agent Execution
Dispatch
Recovery
Work Signals
Signal Ingestion
Proposal
  1. assignment
  2. wake
  3. guardrail
  1. stage reaper
  2. zombie sweeper
  3. circuit breaker
  4. escalation
  1. observe
  2. signals
  3. profile
  4. directive
  1. proposal
  2. approval

Assignment: assigneeAgentId · PATCH /api/issues/:id · queueIssueAssignmentWakeup · issue.updated · CTO TRIAGE · AUTO-PROMOTE TO TODO · AUTO-REBALANCE · in_progress · REASSIGN WITHOUT WAKE · repatchAssignment · kiki-retry-issue · status: todoWake: queueIssueAssignmentWakeup · REASSIGN WITHOUT WAKE · ctx.agents.invoke · POST /api/agents/:id/wakeup · invokeOnce · INVOKE DEDUP · windowMs · HANDOFF-ACK · AT-LEAST-ONCE · HANDOFF_ACK_MAX_RETRIES · ORPHAN WAKE · lastRunAt · maxConsecutiveWakes · WAKE-STORM GUARD · heartbeat_runsGuardrail: issue.updated · in_progress · ORPHAN WAKE · SPEC COMPLETE · PO SPEC GATE · PO DELEGATION GATE · REVIEW SCORECARD · 30/30 · REWORK · PO ACCEPTANCE SCORECARD · findScorecardInComments · ANTI-DECEPTION RATCHET · WORKFLOW GUARDRAILStage Reaper: PATCH /api/issues/:id · lastRunAt · stage-reaper · repatchAssignment · heartbeatSeconds · maxConsecutiveWakes · COOLDOWN · lastSignalTime · stageEntryTime · LEVEL-TRIGGERED · WAKE-STORM GUARD · pipeline-reaper · stage-without-PATCH · kiki-retry-issue · LEAD REROUTEZombie Sweeper: zombie-sweeper · ZOMBIE_RUNNING_MAX_MIN · ZOMBIE_QUEUED_MAX_MIN · execution_run_id · RUN OWNERSHIP CONFLICT · heartbeat_runs · claude_local · execution_locked_at · SELF-HEALCircuit Breaker: CLOSED · HALF_OPEN · auth_fail · rate_limit · RETRY STORM · CB_FAILURE_THRESHOLD · KEY ROTATOR · HTTP 429 · process_lost · agent.run.failedEscalation: process_lost · agent.run.failed · ESCALATION COMMENT · LEAD REROUTE · QA FALLBACK · agent.status_changed · failed-run-escalator · PIPELINE NOTIFIER · pipeline-health-snapshot · SILENT STALLObserve: observe_channel · slack_read_channels · slack_read_thread · slack_read_reactions · slack_user_activity · .last_observed.json · DELTA TRACKING · oldest · SOCKET MODE · kiki-observe · NO RAW TEXTSignals: NO RAW TEXT · UserSignal · message_count · avg_response_time_minutes · active_hours · thread_participation_rate · topic_keywords · evidence_count · LLMExtractedSignal · FeedbackSignalProfile: FeedbackSignal · UserProfile · CommunicationStyle · DecisionPattern · WorkRhythm · focusBlocks · confidence · ContextMode · DELEGATION CHAINS · refresh-profilesDirective: AgentDirective · profileToDirectives · reportFormat · taskConstraints · directiveToSkillMarkdown · agent.created · PATCH /api/skills/{skillId} · grounding_policy · systemPrompt · NO USER PIIMaintenance Proposal: MaintenanceProposal · [MAINT] · daily-maintenance · run-maintenance · kiki-maintain · MAX 10 PROPOSALS · [SCHEMA APPROVAL REQUIRED] · P1/P2/P3 · DO NOT FABRICATE · BOUND TARGETHuman Approval: SOCKET MODE · [SCHEMA APPROVAL REQUIRED] · maint_approve · maint_deny · BLOCK KIT · reaction_added · white_check_mark · ProposalMapping · block_actions · approved · cancelled · status: todo

Mellom tildeling og faktisk utførelse: en sti for å observere og gjenopprette.

Arbeidssignaler blir profiler og agentdirektiver, og godkjenning av et vedlikeholdsforslag holdes atskilt fra tildeling av utførelsen. Når aktiviteten i en tildelt sak stopper, bes det om den på nytt med saken og den ansvarlige, og gjentatte uteblitte svar går videre til en grense, en cooldown og en persons vurdering.

De gjør arbeidssignaler om til agentdirektiver og kobler vedlikeholdsforslag, menneskelig godkjenning, tildeling og gjenoppretting av kjøringer som har stoppet opp, sammen som separate steg. Jeg planla og utviklet denne flyten.

Første logg i repositoryet 3. april 2026 · oppdrag for pinxlab til og med 26. mai 2026

Kjører som plugin inne i teamets Paperclip; en MCP-server står for innsamlingen fra Slack.

Kart over utførelsesflyten · ut fra private implementeringslogger
Kiki: signaler · godkjenning · gjenoppretting av utførelseArbeidsmønstre trekkes ut fra tilgjengelig kanalhistorikk i Slack til selskapsprofiler og direktiver per agent. En agent for vedlikeholdsanalyse ser på et målprosjekt og legger igjen forslag som ikke-tildelte backlog-saker; hvert forslag publiseres i Slack, der en person godkjenner eller avslår det med en reaksjon. Når en godkjent sak er tildelt en agent, gjør et eksternt utførelsessystem arbeidet, og en stage reaper følger med på den siste aktiviteten. Hvis aktiviteten stopper, bes det om tildelingen på nytt med saken og den ansvarlige; når uteblitte svar på rad når grensen, stopper nye kall, og saken går til en lead eller operatør.Slack-signalerTilgjengelig kanalhistorikkTildelt agentEkstern utførelseMålprosjektInnholdet vises ikkePerson · godkjenn, avslåSlack-reaksjonLead · operatørOmtildel · varsleSignalinnsamlingMønsteruttrekk · ingen boterSelskapstilstandSammenslåing av selskapsprofilAgenttilstandDirektiver per agentKjøreobservasjonSiste kjøringer · aktivitetVedlikeholdsanalysePO-kall · avgrenset promptSakssporingForslag · backlogKjøresak · todoPublisering av forslagKobling melding ↔ sakStage reaperKontroll av stillstand · heartbeatGjenopprettingskallSak + ansvarligTilstand for uteblitte svarUteblitte svar · per sakGrenseStopp nye kall · cooldownSignaler → direktiverEkstern utførelseForslag → menneskelig godkjenningGjenoppretting · eskalering1 kanalhistorikk · Slack-signaler → Mønsteruttrekk · ingen boter12 sammenslåing av profil · Mønsteruttrekk · ingen boter → Sammenslåing av selskapsprofil23 generer på nytt · Sammenslåing av selskapsprofil → Direktiver per agent34 direktiver inn · Direktiver per agent → Tildelt agent41målomfang2 forslagssak · PO-kall · avgrenset prompt → Forslag · backlog23publiser forslag4Slack-melding5reaksjon6godkjenn → todo7avslå → cancelled8tildeling1kjørelogger2siste aktivitet3uteblitt svar +14ny aktivitet → nullstill5 nytt kall · Kontroll av stillstand · heartbeat → Sak + ansvarlig56sak + ansvarlig7etter 38omtildel · varsle9bare advarsel

Signaler → direktiver

Profiler og agentdirektiver bygges ut fra Slack-historikk. Direktiver er agentkontekst og er ikke tegnet som årsak til noe forslag.

  1. Slack-signalerData: kanalhistorikkMønsteruttrekk · ingen boterSignalinnsamling

    Tilgjengelig kanalhistorikk samles inn, og meldinger fra boter og om å bli med og forlate filtreres bort. Opprinnelige meldinger vises ikke på denne siden.

  2. Mønsteruttrekk · ingen boterSignalinnsamlingData: sammenslåing av profilSammenslåing av selskapsprofilSelskapstilstand

    Uttrukne mønstre blir en profil-patch som slås sammen med selskapsprofilen. Dette er heuristiske mønstre, ikke prestasjonsscorer for ansatte.

  3. Sammenslåing av selskapsprofilSelskapstilstandData: generer på nyttDirektiver per agentAgenttilstand

    Direktiver per agent genereres på nytt ut fra den sammenslåtte profilen og lagres.

  4. Direktiver per agentAgenttilstandKjøring · vurdering: direktiver innTildelt agent

    Direktiver kommer inn i en agents kontekst når den opprettes. Det betyr ikke at et bestemt forslag kom fra et bestemt Slack-signal.

Forslag → godkjenning → tildeling

Et forslag finnes først som en ikke-tildelt backlog-sak, en persons reaksjon ber om en statusendring, og tildeling og utførelse hører til det eksterne systemet.

  1. MålprosjektData: målomfangPO-kall · avgrenset promptVedlikeholdsanalyse

    Vedlikeholdsjobben kaller PO-agenten med en prompt avgrenset til målprosjektet. Kildeinnhold vises ikke.

  2. PO-kall · avgrenset promptVedlikeholdsanalyseData: forslagssakForslag · backlogSakssporing

    Prompten ber om forslag med bare verifiserte stier som ikke-tildelte backlog-saker og forbyr å kjøre DB-migreringer. Det er en instruks til en produktagent, ikke en deterministisk håndhevingsmekanisme.

  3. Forslag · backlogSakssporingData: publiser forslagKobling melding ↔ sakPublisering av forslag

    Hvert forslag publiseres i Slack, og koblingen mellom melding og sak lagres. Forslag som allerede er publisert, publiseres ikke på nytt, og den lagrede koblingen beholder de siste 50.

  4. Kobling melding ↔ sakPublisering av forslagData: Slack-meldingPerson · godkjenn, avslå

    En person ser det publiserte forslaget i Slack.

  5. Person · godkjenn, avslåKjøring · vurdering: reaksjonKobling melding ↔ sakPublisering av forslag

    En reaksjon på meldingen finner saken via koblingen. Det finnes ingen automatisk godkjenning.

  6. Kobling melding ↔ sakPublisering av forslagKjøring · vurdering: godkjenn → todoKjøresak · todoSakssporing

    Ved godkjenning sendes en forespørsel om å flytte den ventende forslagssaken til todo, og koblingen og trådvarselet oppdateres. Denne håndtereren markerer koblingen som godkjent uten å kontrollere svarkoden, så det er ikke en fail-closed-transaksjon.

  7. Kobling melding ↔ sakPublisering av forslagKjøring · vurdering: avslå → cancelledForslag · backlogSakssporing

    Ved avslag sendes en forespørsel om å flytte samme sak til cancelled. Saken fantes før godkjenningen; godkjenningen oppretter den ikke.

  8. Kjøresak · todoSakssporingKjøring · vurdering: tildelingTildelt agent

    Tildeling og utførelse av en todo-sak hører til det eksterne utførelsessystemet. Å flytte en sak til todo garanterer ikke at arbeidet har startet.

Stillstand → gjenoppretting → person

For en tildelt sak der aktiviteten har stoppet, bes det på nytt med saken og den ansvarlige; når uteblitte svar på rad når grensen, går den til en person.

  1. Tildelt agentObservasjon · rapport: kjøreloggerSiste kjøringer · aktivitetKjøreobservasjon

    Den tildelte agentens kjøringer og siste signaler registreres som observasjoner. Aktivitet er ikke belegg for fullføring.

  2. Siste kjøringer · aktivitetKjøreobservasjonObservasjon · rapport: siste aktivitetKontroll av stillstand · heartbeatStage reaper

    Reaperen ser bare på saker som ikke er done, cancelled eller blocked, og som har en ansvarlig, og beregner alderen på det siste signalet og stage.

  3. Kontroll av stillstand · heartbeatStage reaperData: uteblitt svar +1Uteblitte svar · per sakTilstand for uteblitte svar

    Uteblitte svar på rad telles per agent og sak og lagres i tilstanden.

  4. Siste kjøringer · aktivitetKjøreobservasjonObservasjon · rapport: ny aktivitet → nullstillUteblitte svar · per sakTilstand for uteblitte svar

    Ny aktivitet nullstiller tellingen.

  5. Kontroll av stillstand · heartbeatStage reaperKjøring · vurdering: nytt kallSak + ansvarligGjenopprettingskall

    Hvis heartbeat overskrides og tellingen er under grensen, gjøres et gjenopprettingskall.

  6. Sak + ansvarligGjenopprettingskallKjøring · vurdering: sak + ansvarligKjøresak · todoSakssporing

    Det bes om tildelingen på nytt med saken, den tildelte agenten og en forklarende kommentar, og HTTP-svaret kontrolleres. En legacy-sti faller tilbake på ett enkelt vekkingskall.

  7. Uteblitte svar · per sakTilstand for uteblitte svarFeil · grense: etter 3Stopp nye kall · cooldownGrense

    Når uteblitte svar på rad når grensen (3 som standard), stopper nye kall. Grensen holder bare når tilstandshooks leser og skriver tellingen, og en mislykket lagring kan svekke den.

  8. Stopp nye kall · cooldownGrenseKjøring · vurdering: omtildel · varsleLead · operatør

    Omtildeler om mulig til en lead og flytter bare in_progress tilbake til todo når den funksjonen er slått på. Ellers legges det igjen en kommentar og et best-effort-varsel, og en cooldown registreres etter grensen.

  9. Kontroll av stillstand · heartbeatStage reaperObservasjon · rapport: bare advarselLead · operatør

    Når en stage varer for lenge, legges det bare igjen en advarselskommentar til operatører. Status endres ikke automatisk.

Alle forbindelser med samme tykkelse. Velg en flyt for å fremheve bare dens vei, med nummererte steg.

  • Heltrukket · retning for input, resultater og logger
  • Stiplet · kjøring, vurdering, forespørsel
  • Lange prikker · observasjon og rapportering, atskilt fra vurdering
  • Korte streker · feil, stopp, grense
  • Kraftig svart linje · den valgte flyten; tallene angir rekkefølgen
  • Boks · kode- eller tilstandsgrense, navngitt i overskriften
  • Indre chip · en komponent innenfor grensen
  • Prikket boks · utenfor grensen
  • Oransje kontur · der en modell tar beslutninger
  • Agentkall · gjenopprettingskall
  • Tilstand · logger
  • Kontroll av stillstand · grense
  • Innsamling · publisering

Tegnet ut fra private implementerings- og utviklingslogger. Team-, saks- og Slack-identifikatorer og opprinnelige meldinger vises ikke; utrulling, containere og påloggingsinformasjon tilhører en eier utenfor denne pluginen.

Én observasjon
Rapport fra 28. april 2026: i en manuell diagnose før endringen ble det for én sak som ikke hadde kjørt på 67 timer, bedt om tildelingen på nytt med sak og ansvarlig, og en ny kjøring ble satt i kø innen 5 sekunder. Fullføring, gjennomsnittlig gjenopprettingstid og effekt etter utrulling ble ikke målt.
Begrensninger i håndteringen av godkjenninger
I motsetning til gjenopprettingskallet markerer håndteringen av godkjenninger koblingen som godkjent uten å kontrollere svarkoden. Den beskrives ikke som en atomisk eller fail-closed godkjenningstransaksjon.
Når grensen holder
Grensen på 3 kall er en implementering som holder når tilstandshooks finnes. Den garanterer ikke nøyaktig én eskalering ved enhver feil.