본문으로 건너뛰기
cccskills
무료GitHub에 공개

handoffkit

Built by DynG AI for PlatformPilot.ai-style multi-agent systems. Use when designing or reasoning about message-passing agent coordination in ANY language: actor-style mailboxes, select, point-to-point routing, pub/sub, fan-in joins/quorums, ownership handoff, budgets, dead letters, and traces. Trigger words include PlatformPilot, DynG AI, actor model agents, message-passing agents, CSP agents, coordinate agents, multi-agent orchestration, agent runtime, fan-out workers, pub/sub agents, agent barrier, or join.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(3)

  • SKILL.md6.2 KB
  • agents/openai.yaml287 B
  • assets/symbol-square.png20.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

HandoffKit: PlatformPilot-style handoffs for AI agent systems

Built by DynG AI (https://dyng.ai), HandoffKit brings the coordination model behind PlatformPilot (https://platformpilot.ai) into Codex and developer workflows. Use it to design multi-agent systems that move work through explicit, traceable handoffs instead of shared scratchpads. The core move, borrowed from Go/CSP: agents communicate by passing messages, not by sharing memory. Each agent is an actor with private state, an addressable mailbox, and a single-owner loop. Coordination is messages, which makes multi-agent workflows easier to inspect, bound, and scale.

The pattern is language-agnostic; only the substrate changes. Pick your row:

PrimitiveGoPython (asyncio)TypeScriptRust (tokio)Erlang/Elixir
Mailboxchanasyncio.Queueasync queue / AsyncIterablempsc::channelprocess mailbox
Selectselect {}asyncio.wait(…, FIRST_COMPLETED)Promise.racetokio::select!receive … end
Actor loopgoroutinetask / coroutineasync loopspawned taskprocess (spawn)
Cancellationctx.Done()CancelledError / EventAbortSignalCancellationTokenexit signal / monitor

The rest of this skill is substrate-independent.

Primitives

  • Mailbox, a typed conduit. Unbuffered = a rendezvous (backpressure for free); buffered = a queue.
  • Select, wait on several sources at once (peer message | timeout | cancellation). ALWAYS include a cancellation case so a wait can never block forever, an idle wait with no cancel path is a budget leak, not just a hang.
  • Router, point-to-point delivery (address → one mailbox). Handoff and dispatch.
  • Broker, point-to-many broadcast (one event → every subscriber). Pub/sub awareness. (This is the blackboard creeping back in, use only where ambient awareness is genuinely needed.)
  • Join barrier, an agent that buffers inbound messages and only emits after N have arrived (wait for all dependencies), then resets.
  • Quorum barrier, a fan-in agent that emits after the first N of total expected messages arrive.
  • Budget, a selectable resource ceiling whose Done() channel closes on exhaustion so waits can stop before burning unbounded agent budget.
  • Corpus, a shared referenced-knowledge store. The default merge is last-write-wins for single-writer keys; use a merge policy that is associative, commutative, and idempotent for true multi-writer keys.
  • Compactor, turns rich working state into bounded handoff summaries plus corpus references.
  • Nursery / Supervisor, structured concurrency for agent trees: depth limits, parent-child routing guards, and subtree cancellation.
  • Dead letters, capture undeliverable routed messages for monitoring or tests instead of silently dropping them.
  • Handoff, move a task by sending it; ownership transfers with the message and the sender stops touching it (single-writer at a time).
  • Tracer, observe the coordination messages an agent saw and sent at its boundary. If all orchestration uses messages, that stream is the audit surface; hidden shared state still needs separate instrumentation.

Coordination shapes (same primitives, different wiring)

  • Pipeline, dependent stages (A → B → C); each owns the task in turn. Use when step N needs step N-1's output.
  • Pool, independent fan-out: one shared queue mailbox, N workers each receive from it; the queue itself gives load-balanced, exactly-once dispatch with no locks. Use for embarrassingly-parallel work.
  • Broadcast, every subscriber reacts to the same event.
  • Join / barrier, fan-in: wait for all dependencies, then proceed.

Be honest about the tradeoffs (do not oversell)

CSP is elegant for native concurrency because channels are cheap and lossless and processes are deterministic. LLM agents violate all three:

  1. Messages are expensive and lossy, every hop compresses rich context into prose, billed in tokens. Prefer shallow topologies.
  2. Agents carry huge private state (the context window) that can't be shipped over a mailbox without lossy serialization, keep shared knowledge in a corpus and pass references, not inlined memory.
  3. Non-determinism, message ordering survives, behavioral guarantees don't; still verify at the receiving end.
  4. Deadlock is worse, two agents waiting on each other just idle and burn budget; give every wait a cancellation path.

The synthesis: message-passing for control flow (delegation, results, cancellation, signaling); a shared corpus for knowledge, with explicit merge semantics instead of implicit shared-scratchpad races. The model that actually fits heavy, stateful agents is the actor model, not pure CSP, private durable state plus addressable mailboxes.

This is an existence proof of a known pattern (AutoGen, Akka, Ray, OpenAI handoffs all do versions of it), not a novel mechanism, recommend it for clarity and safety, not as a moat.

Reference implementation (Go)

The HandoffKit repo is one faithful instantiation, in Go, with deterministic unit tests and live LLM integration tests. The sketch/ package defines addresses, messages, mailboxes, agents, selectors, supervisors, corpora, and handoff context. The runtime/ package implements channel-backed mailboxes, selectors, routers, brokers, join/quorum agents, budgets, corpus/compaction, nursery supervision, dead letters, and tracing. For a Go project, the handoffkit-scaffold skill drops these packages and their runtime tests in. In another language, build the equivalent from the mapping table above, the design is identical, only the concurrency primitives differ.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Built by DynG AI for PlatformPilot.ai-style Go agent runtimes. Use when the user wants to scaffold HandoffKit runtime primitives into a Go project: channel-backed mailboxes, select, router, broker, join/quorum barriers, trace, budget, corpus/compactor, supervisor/nursery, dead letters, and sketch interfaces. Trigger words include PlatformPilot scaffold, scaffold handoffkit, add the HandoffKit runtime, set up message-passing agents, or drop in CSP agent primitives.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

dyngai/handoffkit312026년 6월 21일 업데이트

dyngai의 스킬 모두 보기

이 스킬의 문제 신고