Bản phái sinh khuôn mặt trong suốt từ hình mèo Kiki do tác giả cung cấp
Trở lại phòng trưng bày

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.

2026.04 — 2026.05

Làm tự do AI R&D cho pinxlab · lên kế hoạch và phát triển quy trình làm việc, điều tra thực thi bị kẹt và thiết kế đường khôi phục

  • PluginĐã hiện thực · Paperclip
  • Máy chủ MCPĐã hiện thực · Bộ thu thập 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

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.

Bản đồ luồng thực thi · từ các bản ghi hiện thực riêng tư
Tín hiệu · phê duyệt · khôi phục thực thi của KikiCác mẫu làm việc được trích từ lịch sử kênh Slack có thể truy cập thành hồ sơ công ty và chỉ thị cho từng tác nhân. Một tác nhân phân tích bảo trì xem xét dự án đích và để lại đề xuất dưới dạng issue backlog chưa được giao; mỗi đề xuất được đăng lên Slack, nơi một người phê duyệt hoặc từ chối bằng một biểu cảm. Khi một issue đã phê duyệt được giao cho một tác nhân, một hệ thống thực thi bên ngoài làm việc và một stage reaper theo dõi hoạt động gần đây. Nếu hoạt động dừng, việc phân công đượ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, việc gọi lại dừng và trường hợp được chuyển cho lead hoặc người vận hành.Tín hiệu SlackLịch sử kênh có thể truy cậpTác nhân được giaoThực thi bên ngoàiDự án đíchNội dung không được hiển thịCon người · phê duyệt, từ chốiBiểu cảm trên SlackLead · người vận hànhGiao lại · thông báoThu thập tín hiệuTrích mẫu · không tính botTrạng thái công tyHợp nhất hồ sơ công tyTrạng thái tác nhânChỉ thị cho từng tác nhânQuan sát lượt chạyLượt chạy gần đây · hoạt độngPhân tích bảo trìGọi PO · prompt có phạm viTrình theo dõi issueĐề xuất · backlogIssue thực thi · todoĐăng đề xuấtÁnh xạ tin nhắn ↔ issueStage reaperKiểm tra kẹt · heartbeatLệnh gọi khôi phụcIssue + người được giaoTrạng thái không phản hồiSố lần không phản hồi · theo issueGiới hạnNgừng gọi lại · cooldownTín hiệu → chỉ thịThực thi bên ngoàiĐề xuất → phê duyệt của con ngườiKhôi phục · escalate1 lịch sử kênh · Tín hiệu Slack → Trích mẫu · không tính bot12 hợp nhất hồ sơ · Trích mẫu · không tính bot → Hợp nhất hồ sơ công ty23tạo lại4nạp chỉ thị1 phạm vi đích · Dự án đích → Gọi PO · prompt có phạm vi12 issue đề xuất · Gọi PO · prompt có phạm vi → Đề xuất · backlog23đăng đề xuất4tin nhắn Slack5biểu cảm6phê duyệt → todo7từ chối → cancelled8phân công1bản ghi lượt chạy2hoạt động gần nhất3không phản hồi +14hoạt động mới → đặt lại5gọi lại6issue + người được giao7 sau 3 lần · Số lần không phản hồi · theo issue → Ngừng gọi lại · cooldown78giao lại · thông báo9chỉ cảnh báo

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.

  1. Tín hiệu SlackDữ liệu: lịch sử kênhTrích mẫu · không tính botThu thập tín hiệu

    Lị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.

  2. Trích mẫu · không tính botThu 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 ty

    Cá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.

  3. Hợp nhất hồ sơ công tyTrạ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ân

    Chỉ 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.

  4. Chỉ thị cho từng tác nhânTrạng thái tác nhânChạy · phán định: nạp chỉ thịTác nhân được giao

    Chỉ 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.

  1. Dự án đíchDữ liệu: phạm vi đíchGọi PO · prompt có phạm viPhâ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ị.

  2. Gọi PO · prompt có phạm viPhân tích bảo trìDữ liệu: issue đề xuấtĐề xuất · backlogTrình theo dõi issue

    Prompt 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.

  3. Đề xuất · backlogTrình theo dõi issueDữ liệu: đăng đề xuấtÁnh xạ tin nhắn ↔ issueĐăng đề xuất

    Mỗ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.

  4. Ánh xạ tin nhắn ↔ issueĐăng đề xuấtDữ liệu: tin nhắn SlackCon người · phê duyệt, từ chối

    Một người thấy đề xuất đã đăng trong Slack.

  5. 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ất

    Mộ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.

  6. Á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 issue

    Khi 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.

  7. Ánh xạ tin nhắn ↔ issueĐăng đề xuấtChạy · phán định: từ chối → cancelledĐề xuất · backlogTrình theo dõi issue

    Khi 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ó.

  8. Issue thực thi · todoTrình theo dõi issueChạy · phán định: phân côngTác nhân được giao

    Phâ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.

  1. 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 độngQuan sát lượt chạy

    Cá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.

  2. Lượt chạy gần đây · hoạt độngQuan sát lượt chạyQuan sát · báo cáo: hoạt động gần nhấtKiểm tra kẹt · heartbeatStage reaper

    Reaper 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.

  3. Kiểm tra kẹt · heartbeatStage 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ồi

    Số 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.

  4. Lượt chạy gần đây · hoạt độngQuan 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ồi

    Hoạt động mới đặt lại bộ đếm.

  5. Kiểm tra kẹt · heartbeatStage reaperChạy · phán định: gọi lạiIssue + người được giaoLệnh gọi khôi phục

    Nế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.

  6. Issue + người được giaoLệnh gọi khôi phụcChạy · phán định: issue + người được giaoIssue thực thi · todoTrình theo dõi issue

    Việ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.

  7. Số lần không phản hồi · theo issueTrạ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ạn

    Khi 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.

  8. Ngừng gọi lại · cooldownGiới hạnChạy · phán định: giao lại · thông báoLead · người vận hành

    Giao 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.

  9. Kiểm tra kẹt · heartbeatStage reaperQuan sát · báo cáo: chỉ cảnh báoLead · người vận hành

    Khi 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.