
Kiki
Работни сигнали и изпълнение от агенти
За да стане предложението изпълнение от отговорника.
Плъгин за Paperclip и Slack колектор, които помагат на екип да работи със своите AI агенти.
Kiki vocabulary
- assignment
- wake
- guardrail
- stage reaper
- zombie sweeper
- circuit breaker
- escalation
- observe
- signals
- profile
- directive
- proposal
- 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
Между възлагането и реалното изпълнение – път за наблюдение и възстановяване.
Работните сигнали стават профили и инструкции за агентите, а одобрението на предложение за поддръжка се държи отделно от възлагането на изпълнението му. Когато дейността по възложена задача спре, тя се иска отново със задачата и отговорника, а повтарящата се липса на отговор води до лимит, период на изчакване и преценка от човек.
Превръщат работните сигнали в инструкции за агентите и свързват като отделни стъпки предложенията за поддръжка, човешкото одобрение, възлагането и възстановяването на блокирали изпълнения. Планирах и разработих този поток.
Първи запис в хранилището: 3 април 2026 г. · ангажимент с pinxlab до 26 май 2026 г.
Работи като плъгин в Paperclip на екипа; MCP сървър отговаря за събирането от Slack.
Сигнали → инструкции
Профилите и инструкциите за агентите се изграждат от историята в Slack. Инструкциите са контекст на агента и не са показани като причина за някое предложение.
Сигнали от SlackДанни: история на каналитеИзвличане на модели · без ботове
Събиране на сигналиСъбира се достъпната история на каналите, а съобщенията от ботове и за влизане и излизане се филтрират. Оригиналните съобщения не са показани на тази страница.
Извличане на модели · без ботове
Събиране на сигналиДанни: сливане на профилаСливане на профила на компаниятаСъстояние на компаниятаИзвлечените модели стават корекция на профила, слята в профила на компанията. Това са евристични модели, а не оценки за представянето на служителите.
Сливане на профила на компанията
Състояние на компаниятаДанни: регенериранеИнструкции за всеки агентСъстояние на агентаИнструкциите за всеки агент се генерират отново от слетия профил и се съхраняват.
Инструкции за всеки агент
Състояние на агентаИзпълнение · преценка: вкарване на инструкциитеВъзложен агентИнструкциите влизат в контекста на агента при създаването му. Това не означава, че дадено предложение идва от даден сигнал в Slack.
Предложение → одобрение → възлагане
Предложението първо съществува като задача в backlog без отговорник, реакцията на човек иска смяна на състоянието, а възлагането и изпълнението са работа на външната система.
Целеви проектДанни: целеви обхватИзвикване на PO · промпт с обхват
Анализ на поддръжкатаЗадачата за поддръжка извиква агента PO с промпт, ограничен до целевия проект. Съдържанието на изходния код не е показано.
Извикване на PO · промпт с обхват
Анализ на поддръжкатаДанни: задача с предложениеПредложение · backlogСистема за задачиПромптът иска само предложения с проверени пътища, като задачи в backlog без отговорник, и забранява изпълнението на миграции на бази данни. Това е инструкция към продуктов агент, а не детерминистичен механизъм за налагане.
Предложение · backlog
Система за задачиДанни: публикуване на предложениеСъпоставяне съобщение ↔ задачаПубликуване на предложенияВсяко предложение се публикува в Slack, а съпоставянето съобщение–задача се съхранява. Вече публикуваните предложения не се публикуват отново, а съхраненото съпоставяне пази последните 50.
Съпоставяне съобщение ↔ задача
Публикуване на предложенияДанни: Съобщение в SlackЧовек · одобрява, отхвърляЧовек вижда публикуваното предложение в Slack.
Човек · одобрява, отхвърляИзпълнение · преценка: реакцияСъпоставяне съобщение ↔ задача
Публикуване на предложенияРеакция на съобщението намира задачата чрез съпоставянето. Автоматично одобрение няма.
Съпоставяне съобщение ↔ задача
Публикуване на предложенияИзпълнение · преценка: одобрение → todoЗадача за изпълнение · todoСистема за задачиПри одобрение се изпраща заявка чакащата задача с предложение да премине в todo, а съпоставянето и известието в нишката се обновяват. Този обработчик отбелязва съпоставянето като одобрено, без да проверява кода на отговора, така че това не е транзакция, която затваря при грешка.
Съпоставяне съобщение ↔ задача
Публикуване на предложенияИзпълнение · преценка: отказ → cancelledПредложение · backlogСистема за задачиПри отказ се изпраща заявка същата задача да премине в cancelled. Задачата съществува преди одобрението; одобрението не я създава.
Задача за изпълнение · todo
Система за задачиИзпълнение · преценка: възлаганеВъзложен агентВъзлагането и изпълнението на задача в todo са работа на външната система за изпълнение. Преминаването на задача в todo не гарантира, че работата е започнала.
Застой → възстановяване → човек
Възложена задача, чиято дейност е спряла, се иска отново със задачата и отговорника; когато поредните липси на отговор достигнат лимита, тя отива при човек.
Възложен агентНаблюдение · отчет: записи за изпълнениятаПоследни изпълнения · дейност
Наблюдение на изпълнениятаИзпълненията на възложения агент и последните сигнали се записват като наблюдения. Дейността не е доказателство за завършване.
Последни изпълнения · дейност
Наблюдение на изпълнениятаНаблюдение · отчет: последна дейностПроверка за застой · heartbeatStage reaperReaper разглежда само задачите, които не са done, cancelled или blocked и имат отговорник, и изчислява възрастта на последния сигнал и етап.
Проверка за застой · heartbeat
Stage reaperДанни: няма отговор +1Липси на отговор · по задачиСъстояние на липсата на отговорПоредните липси на отговор се броят за всеки агент и задача и се съхраняват в състоянието.
Последни изпълнения · дейност
Наблюдение на изпълнениятаНаблюдение · отчет: нова дейност → нулиранеЛипси на отговор · по задачиСъстояние на липсата на отговорНова дейност нулира брояча.
Проверка за застой · heartbeat
Stage reaperИзпълнение · преценка: повторно извикванеЗадача + отговорникИзвикване за възстановяванеАко heartbeat е надхвърлен и броячът е под лимита, се прави извикване за възстановяване.
Задача + отговорник
Извикване за възстановяванеИзпълнение · преценка: задача + отговорникЗадача за изпълнение · todoСистема за задачиВъзлагането се иска отново със задачата, възложения агент и обяснителен коментар, а HTTP отговорът се проверява. Стар път се свежда до едно извикване за събуждане.
Липси на отговор · по задачи
Състояние на липсата на отговорНеуспех · лимит: след 3Спиране на повторните извиквания · изчакванеЛимитКогато поредните липси на отговор достигнат лимита (по подразбиране 3), повторните извиквания спират. Лимитът се спазва само когато hooks за състоянието четат и записват брояча, а неуспешен запис може да го отслаби.
Спиране на повторните извиквания · изчакване
ЛимитИзпълнение · преценка: превъзлагане · известиеРъководител · операторПревъзлага на ръководител, където е възможно, и връща in_progress в todo само когато тази функция е включена. Иначе оставя коментар и известие без гаранция и записва период на изчакване след лимита.
Проверка за застой · heartbeat
Stage reaperНаблюдение · отчет: само предупреждениеРъководител · операторКогато етап продължи твърде дълго, за операторите се оставя само предупредителен коментар. Състоянието не се променя автоматично.
Всички връзки с еднаква дебелина. Изберете поток, за да се откроят само неговият път и номерираните стъпки.
- Плътна · посока на входа, резултатите и записите
- Прекъсната · изпълнение, преценка, заявка
- Дълга пунктирна · наблюдение и отчитане, отделно от преценката
- Къса прекъсната · неуспех, спиране, лимит
- Дебела черна линия · избраният поток; числата показват реда
- Кутия · граница на код или състояние, с името в заглавието
- Вътрешен етикет · компонент на тази граница
- Пунктирна кутия · извън тази граница
- Оранжев контур · където решава модел
- Извикване на агент · извикване за възстановяване
- Състояние · записи
- Проверка за застой · лимит
- Събиране · публикуване
Начертано по непубличните записи за реализацията и разработката. Идентификатори на екипа, задачите и Slack и оригинални съобщения не са показани; внедряването, контейнерите и идентификационните данни принадлежат на отговорник извън този плъгин.
- Едно наблюдение
- Доклад от 28 април 2026 г.: при ръчна диагностика преди промяната за една задача, която не беше изпълнявана 67 часа, възлагането беше поискано отново със задачата и отговорника и ново изпълнение влезе в опашката до 5 секунди. Завършването, средното време за възстановяване и ефектът след разгръщането не са измерени.
- Ограничения на обработката на одобрението
- За разлика от извикването за възстановяване обработката на одобрението отбелязва съпоставянето като одобрено, без да проверява кода на отговора. Тя не е описана като атомарна или затваряща при грешка транзакция за одобрение.
- Кога се спазва лимитът
- Лимитът от 3 извиквания е реализация, която се спазва при наличие на hooks за състоянието. Той не гарантира точно една ескалация при всеки неуспех.