Skip to content

orchestration: add typed agent-to-agent messaging over local IPC #27

Description

@guicybercode

Context

Agent communication must not be implemented by simulating keyboard input in another terminal. It needs a typed local protocol that works across vendors and preserves task/session identity.

Goal

Provide an agent-facing local command and daemon message bus for listing peers, sending messages, acknowledging delivery, waiting for replies, and reading status.

A possible CLI surface is agentctl or a cli-master agent subcommand; the final name should follow an ADR.

Scope

  • Define sender, recipient, task, session generation, message ID, correlation ID, and bounded payload types.
  • Route only between registered task assignments and live/reconnectable sessions.
  • Add idempotent delivery and explicit acknowledgement/result states.
  • Expose a minimal skill/instruction document for supported agent CLIs.
  • Persist metadata required for audit/recovery without persisting secrets or raw terminal output.
  • Add per-task queue limits, rate limits, and cancellation.

Acceptance criteria

  • No operation writes directly into another terminal's keyboard stream without adapter-mediated delivery.
  • A stale session generation cannot receive a message intended for its replacement.
  • Duplicate message IDs do not execute twice.
  • Slow or disconnected recipients cannot block PTY readers or daemon clients.
  • Queue overflow is explicit and recoverable.
  • Users can inspect sender, recipient, state, and timestamps.
  • Unknown recipients and cross-task sends fail closed.
  • Tests cover reconnect, duplicate delivery, timeout, cancellation, and concurrent sends.

Out of scope

Remote networking, cross-machine agents, and arbitrary peer-to-peer sockets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions