Průhledná odvozenina obličeje z obrázku kočky Kiki dodaného autorem
Zpět do sálu

Kiki

Pracovní signály a provádění agentů

Aby se návrh stal činností řešitele.

Plugin pro Paperclip a kolektor ze Slacku, které týmu pomáhají provozovat agenty AI.

2026.04 — 2026.05

pinxlab AI R&D na volné noze · plánování a vývoj pracovního postupu, šetření zaseknutého provádění a návrh cesty obnovy

  • PluginImplementováno · Paperclip
  • Server MCPImplementováno · Kolektor Slack

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

Mezi přidělením a skutečným provedením: cesta k pozorování a obnově.

Pracovní signály se mění na profily a direktivy pro agenty a schválení návrhu údržby je odděleno od přidělení jeho provedení. Když aktivita přiděleného tiketu ustane, znovu se o něj požádá s tiketem a řešitelem a opakované neodpovídání vede k limitu, cooldownu a lidskému posouzení.

Mění pracovní signály na direktivy pro agenty a jako samostatné kroky propojují návrhy údržby, lidské schválení, přidělení a obnovu zaseknutých běhů. Plánování a vývoj tohoto toku jsou mou prací.

První záznam v repozitáři April 3, 2026 · spolupráce s pinxlab do May 26, 2026

Běží jako plugin uvnitř týmového Paperclip; sběr ze Slacku obstarává server MCP.

Mapa toku provádění · z neveřejných záznamů implementace
Kiki: signály · schválení · obnova prováděníPracovní vzorce se z dostupné historie kanálů Slack vytěží do profilů firem a direktiv pro jednotlivé agenty. Agent analýzy údržby prochází cílový projekt a zanechává návrhy jako nepřidělené tikety v backlogu; každý návrh se zveřejní ve Slacku, kde ho člověk reakcí schválí nebo odmítne. Jakmile je schválený tiket přidělen agentovi, práci vykoná externí prováděcí systém a stage reaper sleduje nedávnou aktivitu. Pokud aktivita ustane, o přidělení se znovu požádá s tiketem a řešitelem; když po sobě jdoucí neodpovědi dosáhnou limitu, opakovaná volání ustanou a případ přejde na vedoucího nebo operátora.Signály SlackDostupná historie kanálůPřidělený agentExterní prováděníCílový projektObsah se nezobrazujeČlověk · schvaluje, odmítáReakce ve SlackuVedoucí · operátorNové přidělení · upozorněníSběr signálůVytěžení vzorců · bez botůStav firmySloučení profilu firmyStav agentaDirektivy pro agentyPozorování běhůNedávné běhy · aktivitaAnalýza údržbyVolání PO · prompt s vymezeným rozsahemSystém tiketůNávrh · backlogTiket k provedení · todoZveřejňování návrhůMapování zpráva ↔ tiketStage reaperKontrola uvíznutí · heartbeatObnovovací voláníTiket + řešitelStav neodpovídáníNeodpovědi · na tiketLimitZastavit volání · cooldownSignály → direktivyExterní prováděníNávrh → lidské schváleníObnova · eskalace1 historie kanálů · Signály Slack → Vytěžení vzorců · bez botů12 sloučení profilu · Vytěžení vzorců · bez botů → Sloučení profilu firmy23regenerace4 vložení direktiv · Direktivy pro agenty → Přidělený agent41rozsah cíle2 tiket s návrhem · Volání PO · prompt s vymezeným rozsahem → Návrh · backlog23zveřejnění návrhu4zpráva Slack5reakce6schválení → todo7odmítnutí → cancelled8přidělení1záznamy běhů2poslední aktivita3neodpověď +14nová aktivita → reset5 opakované volání · Kontrola uvíznutí · heartbeat → Tiket + řešitel56tiket + řešitel7po 38nové přidělení · upozornění9jen varování

Signály → direktivy

Profily a direktivy pro agenty vznikají z historie Slacku. Direktivy jsou kontextem agenta a nezobrazují se jako příčina žádného návrhu.

  1. Signály SlackÚdaje: historie kanálůVytěžení vzorců · bez botůSběr signálů

    Shromažďuje se dostupná historie kanálů a zprávy botů a o připojení či odchodu se odfiltrují. Původní zprávy se na této stránce nezobrazují.

  2. Vytěžení vzorců · bez botůSběr signálůÚdaje: sloučení profiluSloučení profilu firmyStav firmy

    Vytěžené vzorce se stanou záplatou profilu sloučenou do profilu firmy. Jde o heuristické vzorce, nikoli o hodnocení výkonu zaměstnanců.

  3. Sloučení profilu firmyStav firmyÚdaje: regeneraceDirektivy pro agentyStav agenta

    Direktivy pro jednotlivé agenty se ze sloučeného profilu vygenerují znovu a uloží.

  4. Direktivy pro agentyStav agentaSpuštění · rozhodnutí: vložení direktivPřidělený agent

    Direktivy se dostanou do kontextu agenta při jeho vytvoření. Neznamená to, že určitý návrh vzešel z určitého signálu Slack.

Návrh → schválení → přidělení

Návrh nejprve existuje jako nepřidělený tiket v backlogu, reakce člověka žádá o změnu stavu a přidělení a provedení patří externímu systému.

  1. Cílový projektÚdaje: rozsah cíleVolání PO · prompt s vymezeným rozsahemAnalýza údržby

    Úloha údržby volá agenta PO s promptem vymezeným na cílový projekt. Obsah zdrojů se nezobrazuje.

  2. Volání PO · prompt s vymezeným rozsahemAnalýza údržbyÚdaje: tiket s návrhemNávrh · backlogSystém tiketů

    Prompt žádá o návrhy jen s ověřenými cestami, ve formě nepřidělených tiketů v backlogu, a zakazuje spouštět migrace DB. Jde o pokyn produktovému agentovi, nikoli o deterministický mechanismus vynucení.

  3. Návrh · backlogSystém tiketůÚdaje: zveřejnění návrhuMapování zpráva ↔ tiketZveřejňování návrhů

    Každý návrh se zveřejní ve Slacku a mapování zprávy na tiket se uloží. Již zveřejněné návrhy se znovu nezveřejňují a uložené mapování drží posledních 50.

  4. Mapování zpráva ↔ tiketZveřejňování návrhůÚdaje: zpráva SlackČlověk · schvaluje, odmítá

    Člověk vidí zveřejněný návrh ve Slacku.

  5. Člověk · schvaluje, odmítáSpuštění · rozhodnutí: reakceMapování zpráva ↔ tiketZveřejňování návrhů

    Reakce na zprávu najde tiket přes mapování. Automatické schvalování neexistuje.

  6. Mapování zpráva ↔ tiketZveřejňování návrhůSpuštění · rozhodnutí: schválení → todoTiket k provedení · todoSystém tiketů

    Při schválení se odešle žádost o přesun čekajícího tiketu s návrhem do todo a aktualizuje se mapování a upozornění ve vlákně. Tento handler označí mapování jako schválené bez kontroly kódu odpovědi, takže nejde o transakci, která se při selhání uzavře.

  7. Mapování zpráva ↔ tiketZveřejňování návrhůSpuštění · rozhodnutí: odmítnutí → cancelledNávrh · backlogSystém tiketů

    Při odmítnutí se odešle žádost o přesun téhož tiketu do cancelled. Tiket existoval už před schválením; schválení ho nevytváří.

  8. Tiket k provedení · todoSystém tiketůSpuštění · rozhodnutí: přiděleníPřidělený agent

    Přidělení a provedení tiketu todo patří externímu prováděcímu systému. Přesun tiketu do todo nezaručuje, že práce začala.

Uvíznutí → obnova → člověk

O přidělený tiket, jehož aktivita ustala, se znovu požádá s tiketem a řešitelem; když po sobě jdoucí neodpovědi dosáhnou limitu, přejde na člověka.

  1. Přidělený agentPozorování · zpráva: záznamy běhůNedávné běhy · aktivitaPozorování běhů

    Běhy přiděleného agenta a nedávné signály se zaznamenávají jako pozorování. Aktivita není dokladem dokončení.

  2. Nedávné běhy · aktivitaPozorování běhůPozorování · zpráva: poslední aktivitaKontrola uvíznutí · heartbeatStage reaper

    Reaper sleduje jen tikety, které nejsou done, cancelled ani blocked a mají řešitele, a počítá stáří posledního signálu a fáze.

  3. Kontrola uvíznutí · heartbeatStage reaperÚdaje: neodpověď +1Neodpovědi · na tiketStav neodpovídání

    Po sobě jdoucí neodpovědi se počítají pro každou dvojici agent–tiket a ukládají do stavu.

  4. Nedávné běhy · aktivitaPozorování běhůPozorování · zpráva: nová aktivita → resetNeodpovědi · na tiketStav neodpovídání

    Nová aktivita počet vynuluje.

  5. Kontrola uvíznutí · heartbeatStage reaperSpuštění · rozhodnutí: opakované voláníTiket + řešitelObnovovací volání

    Pokud byl heartbeat překročen a počet je pod limitem, provede se obnovovací volání.

  6. Tiket + řešitelObnovovací voláníSpuštění · rozhodnutí: tiket + řešitelTiket k provedení · todoSystém tiketů

    O přidělení se znovu požádá s tiketem, přiděleným agentem a vysvětlujícím komentářem a odpověď HTTP se zkontroluje. Cesta legacy to nahrazuje jediným budicím voláním.

  7. Neodpovědi · na tiketStav neodpovídáníSelhání · limit: po 3Zastavit volání · cooldownLimit

    Když po sobě jdoucí neodpovědi dosáhnou limitu (výchozí 3), opakovaná volání ustanou. Limit platí jen tehdy, když stavové hooky počet čtou a zapisují, a neúspěšné uložení ho může oslabit.

  8. Zastavit volání · cooldownLimitSpuštění · rozhodnutí: nové přidělení · upozorněníVedoucí · operátor

    Podle možností přidělí případ znovu vedoucímu a in_progress vrátí do todo jen tehdy, když je tato funkce zapnutá. Jinak zanechá komentář a upozornění best-effort a po dosažení limitu zaznamená cooldown.

  9. Kontrola uvíznutí · heartbeatStage reaperPozorování · zpráva: jen varováníVedoucí · operátor

    Když fáze trvá příliš dlouho, operátorům se zanechá jen varovný komentář. Stav se automaticky nemění.

Každé spojení se stejnou váhou. Výběr toku zvýrazní jen jeho cestu s očíslovanými kroky.

  • Plná čára · směr vstupu, výsledků a záznamů
  • Přerušovaná čára · spuštění, rozhodnutí, požadavek
  • Dlouhé tečky · pozorování a vykazování, odděleně od rozhodnutí
  • Krátké čárky · selhání, zastavení, limit
  • Silná černá čára · zvolený tok; čísla udávají pořadí
  • Rámeček · hranice kódu nebo stavu, pojmenovaná v záhlaví
  • Vnitřní štítek · komponenta této hranice
  • Tečkovaný rámeček · mimo tuto hranici
  • Oranžový obrys · místo, kde rozhoduje model
  • Volání agenta · obnovovací volání
  • Stav · záznamy
  • Kontrola uvíznutí · limit
  • Sběr · zveřejňování

Nakresleno podle neveřejných záznamů implementace a vývoje. Identifikátory týmu, tiketů a Slacku a původní zprávy se nezobrazují; nasazení, kontejnery a přihlašovací údaje patří vlastníkovi mimo tento plugin.

Jedno pozorování
Zpráva z April 28, 2026: při ruční diagnóze před změnou se u jednoho tiketu, který 67 hodin neběžel, znovu požádalo o přidělení s tiketem a řešitelem a nový běh se do 5 sekund zařadil do fronty. Dokončení, průměrná doba obnovy ani efekt po nasazení se neměřily.
Meze zpracování schválení
Na rozdíl od obnovovacího volání zpracování schválení označí mapování jako schválené bez kontroly kódu odpovědi. Nepopisuje se jako atomická transakce schválení ani jako transakce, která se při selhání uzavře.
Kdy limit platí
Limit 3 volání je implementace, která platí, když jsou přítomny stavové hooky. Nezaručuje právě jednu eskalaci při každém selhání.