
Kiki
Tín hiệu công việc và thực thi tác nhân
Để một đề xuất trở thành hành động thực thi của người được giao.
Một plugin Paperclip và một bộ thu thập Slack giúp đội vận hành các tác nhân AI của mình.
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
Giữa phân công và thực thi thực tế, một đường để quan sát và khôi phục.
Tín hiệu công việc trở thành hồ sơ và chỉ thị cho tác nhân, và việc phê duyệt đề xuất bảo trì được tách khỏi việc giao thực thi. Khi hoạt động của một issue đã giao dừng lại, nó được yêu cầu lại kèm issue và người được giao, và việc không phản hồi lặp lại sẽ đi đến giới hạn, cooldown và phán đoán của con người.
Chúng biến tín hiệu công việc thành chỉ thị cho tác nhân và nối các đề xuất bảo trì, phê duyệt của con người, phân công và khôi phục các lượt chạy bị kẹt thành những bước riêng. Tôi đã lên kế hoạch và phát triển luồng này.
Bản ghi đầu tiên trong kho mã April 3, 2026 · hợp tác với pinxlab đến May 26, 2026
Chạy như một plugin bên trong Paperclip của đội; một máy chủ MCP đảm nhận việc thu thập Slack.
Tín hiệu → chỉ thị
Hồ sơ và chỉ thị tác nhân được dựng từ lịch sử Slack. Chỉ thị là ngữ cảnh của tác nhân và không được vẽ như nguyên nhân của bất kỳ đề xuất nào.
Tín hiệu SlackDữ liệu: lịch sử kênhTrích mẫu · không tính bot
Thu thập tín hiệuLịch sử kênh có thể truy cập được thu thập và các tin nhắn của bot, vào và rời kênh được lọc bỏ. Tin nhắn gốc không được hiển thị trên trang này.
Trích mẫu · không tính bot
Thu thập tín hiệuDữ liệu: hợp nhất hồ sơHợp nhất hồ sơ công tyTrạng thái công tyCác mẫu trích ra trở thành một bản vá hồ sơ được hợp nhất vào hồ sơ công ty. Đây là các mẫu heuristic, không phải điểm hiệu suất của nhân viên.
Hợp nhất hồ sơ công ty
Trạng thái công tyDữ liệu: tạo lạiChỉ thị cho từng tác nhânTrạng thái tác nhânChỉ thị cho từng tác nhân được tạo lại từ hồ sơ đã hợp nhất và lưu lại.
Chỉ thị cho từng tác nhân
Trạng thái tác nhânChạy · phán định: nạp chỉ thịTác nhân được giaoChỉ thị đi vào ngữ cảnh của tác nhân khi nó được tạo. Điều này không có nghĩa một đề xuất cụ thể đến từ một tín hiệu Slack cụ thể.
Đề xuất → phê duyệt → phân công
Một đề xuất trước hết tồn tại dưới dạng issue backlog chưa được giao, biểu cảm của một người yêu cầu đổi trạng thái, còn phân công và thực thi thuộc về hệ thống bên ngoài.
Dự án đíchDữ liệu: phạm vi đíchGọi PO · prompt có phạm vi
Phân tích bảo trìCông việc bảo trì gọi tác nhân PO với một prompt giới hạn trong dự án đích. Nội dung mã nguồn không được hiển thị.
Gọi PO · prompt có phạm vi
Phân tích bảo trìDữ liệu: issue đề xuấtĐề xuất · backlogTrình theo dõi issuePrompt yêu cầu đề xuất chỉ với các đường dẫn đã xác minh, dưới dạng issue backlog chưa được giao, và cấm chạy DB migration. Đây là chỉ dẫn cho một tác nhân của sản phẩm, không phải cơ chế cưỡng chế tất định.
Đề xuất · backlog
Trình theo dõi issueDữ liệu: đăng đề xuấtÁnh xạ tin nhắn ↔ issueĐăng đề xuấtMỗi đề xuất được đăng lên Slack và ánh xạ tin nhắn với issue được lưu. Các đề xuất đã đăng không được đăng lại, và ánh xạ được lưu giữ 50 mục gần nhất.
Ánh xạ tin nhắn ↔ issue
Đăng đề xuấtDữ liệu: tin nhắn SlackCon người · phê duyệt, từ chốiMột người thấy đề xuất đã đăng trong Slack.
Con người · phê duyệt, từ chốiChạy · phán định: biểu cảmÁnh xạ tin nhắn ↔ issue
Đăng đề xuấtMột biểu cảm trên tin nhắn tìm ra issue qua ánh xạ. Không có phê duyệt tự động.
Ánh xạ tin nhắn ↔ issue
Đăng đề xuấtChạy · phán định: phê duyệt → todoIssue thực thi · todoTrình theo dõi issueKhi phê duyệt, một yêu cầu được gửi để chuyển issue đề xuất đang chờ sang todo, và ánh xạ cùng thông báo trong thread được cập nhật. Handler này đánh dấu ánh xạ là đã phê duyệt mà không kiểm tra mã phản hồi, nên đây không phải giao dịch fail-closed.
Ánh xạ tin nhắn ↔ issue
Đăng đề xuấtChạy · phán định: từ chối → cancelledĐề xuất · backlogTrình theo dõi issueKhi từ chối, một yêu cầu được gửi để chuyển cùng issue đó sang cancelled. Issue đã tồn tại trước khi phê duyệt; phê duyệt không tạo ra nó.
Issue thực thi · todo
Trình theo dõi issueChạy · phán định: phân côngTác nhân được giaoPhân công và thực thi một issue todo thuộc về hệ thống thực thi bên ngoài. Chuyển một issue sang todo không bảo đảm công việc đã bắt đầu.
Kẹt → khôi phục → con người
Một issue đã giao mà hoạt động dừng lại được yêu cầu lại kèm issue và người được giao; khi số lần không phản hồi liên tiếp chạm giới hạn, nó được chuyển cho con người.
Tác nhân được giaoQuan sát · báo cáo: bản ghi lượt chạyLượt chạy gần đây · hoạt động
Quan sát lượt chạyCác lượt chạy và tín hiệu gần đây của tác nhân được giao được ghi lại như quan sát. Hoạt động không phải bằng chứng hoàn tất.
Lượt chạy gần đây · hoạt động
Quan sát lượt chạyQuan sát · báo cáo: hoạt động gần nhấtKiểm tra kẹt · heartbeatStage reaperReaper chỉ xem các issue không ở trạng thái done, cancelled hay blocked và có người được giao, và tính tuổi của tín hiệu và stage gần nhất.
Kiểm tra kẹt · heartbeat
Stage reaperDữ liệu: không phản hồi +1Số lần không phản hồi · theo issueTrạng thái không phản hồiSố lần không phản hồi liên tiếp được đếm theo từng tác nhân và issue và lưu trong trạng thái.
Lượt chạy gần đây · hoạt động
Quan sát lượt chạyQuan sát · báo cáo: hoạt động mới → đặt lạiSố lần không phản hồi · theo issueTrạng thái không phản hồiHoạt động mới đặt lại bộ đếm.
Kiểm tra kẹt · heartbeat
Stage reaperChạy · phán định: gọi lạiIssue + người được giaoLệnh gọi khôi phụcNếu vượt heartbeat và bộ đếm còn dưới giới hạn, một lệnh gọi khôi phục được thực hiện.
Issue + người được giao
Lệnh gọi khôi phụcChạy · phán định: issue + người được giaoIssue thực thi · todoTrình theo dõi issueViệc phân công được yêu cầu lại kèm issue, tác nhân được giao và một bình luận giải thích, và phản hồi HTTP được kiểm tra. Một đường legacy lùi về một lệnh gọi đánh thức duy nhất.
Số lần không phản hồi · theo issue
Trạng thái không phản hồiLỗi · giới hạn: sau 3 lầnNgừng gọi lại · cooldownGiới hạnKhi số lần không phản hồi liên tiếp chạm giới hạn (mặc định 3), việc gọi lại dừng. Giới hạn chỉ có hiệu lực khi các hook trạng thái đọc và ghi bộ đếm, và một lần lưu thất bại có thể làm nó yếu đi.
Ngừng gọi lại · cooldown
Giới hạnChạy · phán định: giao lại · thông báoLead · người vận hànhGiao lại cho lead nếu có thể, và chỉ chuyển in_progress về todo khi tính năng đó được bật. Nếu không thì để lại một bình luận và một thông báo best-effort, và ghi một cooldown sau khi chạm giới hạn.
Kiểm tra kẹt · heartbeat
Stage reaperQuan sát · báo cáo: chỉ cảnh báoLead · người vận hànhKhi một stage kéo dài quá lâu, chỉ một bình luận cảnh báo được để lại cho người vận hành. Trạng thái không bị thay đổi tự động.
Mọi kết nối có cùng độ đậm. Chọn một luồng để chỉ làm nổi bật đường đi của nó, kèm các bước được đánh số.
- Nét liền · hướng đi của đầu vào, kết quả và bản ghi
- Nét đứt · chạy, phán định, yêu cầu
- Chấm dài · quan sát và báo cáo, tách khỏi phán định
- Gạch ngắn · lỗi, dừng, giới hạn
- Nét đen đậm · luồng được chọn; số chỉ thứ tự
- Hộp · ranh giới mã hoặc trạng thái, tên ở phần đầu
- Chip bên trong · một thành phần của ranh giới đó
- Hộp chấm · bên ngoài ranh giới đó
- Viền cam · nơi một mô hình quyết định
- Gọi tác nhân · gọi khôi phục
- Trạng thái · bản ghi
- Kiểm tra kẹt · giới hạn
- Thu thập · đăng
Vẽ từ các bản ghi hiện thực và phát triển riêng tư. Định danh đội, issue và Slack cùng tin nhắn gốc không được hiển thị; triển khai, container và thông tin xác thực thuộc về một chủ sở hữu bên ngoài plugin này.
- Một quan sát
- Báo cáo April 28, 2026: trong một lần chẩn đoán thủ công trước thay đổi, một issue không chạy suốt 67 giờ được yêu cầu phân công lại kèm issue và người được giao, và một lượt chạy mới được đưa vào hàng đợi trong vòng 5 giây. Mức hoàn tất, thời gian khôi phục trung bình và tác động sau khi triển khai chưa được đo.
- Giới hạn của việc xử lý phê duyệt
- Khác với lệnh gọi khôi phục, việc xử lý phê duyệt đánh dấu ánh xạ là đã phê duyệt mà không kiểm tra mã phản hồi. Nó không được mô tả là một giao dịch phê duyệt nguyên tử hay fail-closed.
- Khi nào giới hạn có hiệu lực
- Giới hạn 3 lần là phần hiện thực có hiệu lực khi có các hook trạng thái. Nó không bảo đảm đúng một lần escalate dưới mọi lỗi.