尧图精选

CompozyOS架构深度解析:ACP协议、事件流与daemon如何管理多个Agent

🕒 发布时间:2026/10/2 12:44:52 📁 来源:尧图网络
CompozyOS架构深度解析ACP协议、事件流与daemon如何管理多个Agent【免费下载链接】compozyAn operating system for AI agents. Plug in the agent CLIs you already use (Claude Code, Codex, Gemini CLI, Cursor) and they become a team: they split the work, hand tasks to each other, run automated on jobs and loops, and share one project memory. You steer everything from the browser.项目地址: https://gitcode.com/gh_mirrors/co/compozyCompozyOS 是一个为 AI Agent 打造的操作系统把你日常使用的 Agent CLIClaude Code、Codex、Gemini CLI 等接入同一个 daemon它们就能分工协作、互相交接任务、按定时与循环自动运行并共享一份项目记忆。本文深入解析 CompozyOS 的三大核心架构——ACP 协议、事件流Event Stream与 daemon 多 Agent 管理带你从一张全景图看懂多个 Agent 是如何被统一调度和观测的。一、架构全景控制面、daemon 与共享状态理解 CompozyOS 架构最简单的方式是把系统拆成三层层职责入口示例控制面Control Surfaces人浏览器和 AgentCLI、MCP、HTTP/SSE发出指令Web、compozyCLI、UDS、MCPdaemon 运行时解析工作区、应用权限与策略、协调 ACP Agentinternal/daemon/状态与事件持久化事件、会话、Loop 运行、记忆所有客户端读取同一份事实SQLite 存储internal/store/关键点在于会话Session、任务Task和 Loop 运行都归属于 daemon而不是某个终端或窗口。因此关闭任何一个客户端都不会丢失工作成果——这正是操作系统这个词的含义daemon 是内核Agent CLI 是进程。二、ACP 协议让不同 Agent CLI 变成标准进程2.1 为什么需要 ACP各家 Agent CLIClaude Code、Codex、Gemini CLI都有自己的交互方式。CompozyOS 通过ACPAgent Client Protocol协议把它们统一为一种标准接入方式daemon 把每个 Agent 视为一个受管的子进程通过 JSON-RPC 流量与其对话就像操作系统管理普通进程一样。核心实现集中在internal/acp/Driver驱动负责启动 ACP Agent 子进程并代理 JSON-RPC 流量见 client.go。它通过一组Option注入启动器、工具宿主、终端管理器等依赖解耦清晰。AgentProcessAgent 进程代表一个正在运行的 ACP Agent 子进程持有 PID、会话 ID、能力Caps、权限策略、待处理权限请求等完整生命周期状态见 agent_process.go。权限PermissionAgent 请求执行敏感操作时daemon 挂起请求并等待审批决策默认最长 5 分钟决策结果以事件形式回传见 permission.go。2.2 一次 Prompt 的完整旅程当你向会话发送一条指令时数据流大致如下启动/复用进程Driver 通过 Launcher 拉起 Agent 子进程建立 ACP 连接注入上下文daemon 按分节sections投递系统提示词并支持提示词缓存控制见 prompt_sections.go事件回传Agent 的输出被归一化为标准事件类型权限闸门涉及工具调用时权限策略介入未获批准的操作不会执行结束与回收prompt 轮次完成时发出done事件进程按策略保留或退出。三、事件流统一的事件模型与广播机制3.1 AgentEvent所有 Agent 输出的统一表示无论后端是哪个 Agent CLI其输出都被归一化为AgentEvent见 types.go覆盖 20 余种标准事件类型消息类user_message、agent_message、thought思考链工具类tool_call工具调用开始/更新、tool_result工具完成决策类permission权限决策、clarify澄清生命周期运行时类runtime_progress、runtime_recovery_started/succeeded/exhausted自动恢复、done、error观测类usageToken 用量、plan计划更新每个事件都携带SessionID、TurnID、时间戳与关联元数据store.EventCorrelation天然支持跨 Agent 的追溯与过滤。3.2 IngestGate有界、无损的摄入闸门Agent 输出是高频流直接写入存储会压垮系统。CompozyOS 用一个有界环形队列 IngestGate做背压控制见 event_ingest.go默认容量1024 条事件 / 8MB超出即拒绝ErrIngestSaturated绝不阻塞生产者文本自动合并coalescing连续的同类文本块会合并为一条最多 4KB/条大幅降低存储与广播开销无损语义已接纳的事件不会丢失消费端可逐条取走Next。3.3 LiveBroadcast持久化之后的实时广播事件先持久化、后广播。LiveBroadcast见 event_broadcast.go将已落库的事件分发给多个订阅者每个订阅者有独立缓冲通道和游标after序号支持从断点续订慢消费者触发shed 机制订阅者收到一个重放标记后被关闭其宿主转而去查询持久化历史——宁可让你重放也不让慢订阅拖垮整体统计信息订阅数、积压深度、shed 次数暴露给观测接口。此外internal/events/包维护一份全局事件元数据注册表见 registry.go为每个事件名定义所属族Family、组件Component和结果Outcomeinfo/success/failure/warning并决定它是否进入日志、是否可触发桌面通知——这是 CompozyOS 事件流可观测、可过滤的基础。四、daemon多 Agent 管理的中枢4.1 启动即装配daemon 启动过程是一套显式的装配流水线internal/daemon/boot*.go系列文件按职责拆分boot.go/boot_lifecycle.go启动骨架与生命周期boot_automation.go装配自动化运行时调度、Webhook、触发器boot_extensions.go/boot_hooks.go扩展发现、信任决策与钩子boot_session_supervision.go会话监督守护会话不静默死亡boot_subprocess_health.go子进程健康检查。4.2 管理多个 Agent 的关键设计进程注册表Process Registrydaemon 为每个 Agent 子进程登记toolruntime.Handle支持跨进程的作用域中断interrupt——停止某个 Agent 不会误伤其他 Agent。会话与进程解耦AgentProcess.Done()暴露进程退出通道agent_process.godaemon 据此区分Agent 崩溃与轮次正常结束前者触发自动运行时恢复runtime_recovery_*事件后者仅结束当前 prompt 轮次。工作区边界会话、任务、Loop 运行、记忆都带有显式的 owner 与 workspace 边界多 Agent 在同一工作区协作时互不越权。同一份事实源Web、CLI、SSE 客户端读取的都是 daemon 持有的持久化事件与资源状态不存在第二份内存模型因此任何界面看到的 Agent 状态永远一致。五、快速定位核心模块路径导航关注点模块路径ACP 驱动与 Agent 进程internal/acp/client.go、internal/acp/agent_process.go事件类型定义internal/acp/types.go事件摄入与背压internal/acp/event_ingest.go事件广播与订阅internal/acp/event_broadcast.go事件元数据注册表internal/events/registry.godaemon 启动装配internal/daemon/boot.goSSE 流式解码internal/sse/decode.go持久化存储SQLiteinternal/store/六、总结三个设计决策撑起多 Agent 操作系统用协议统一 AgentACP 让任意兼容 CLI 变成标准进程daemon 无需为每个 Agent 写适配逻辑用事件流替代状态同步所有 Agent 输出归一化为事件先持久化后广播慢消费者 shed 重放系统在任何规模下都不丢事件、不堵消息用 daemon 收编所有权会话、Loop、记忆、审批都归属 daemon多个 Agent 在同一份事实源上协作浏览器只是众多控制面之一。这也是 CompozyOS 被称为AI Agent 的操作系统的原因它没有发明新的 Agent而是给现有 Agent 装上了一套进程管理、事件总线和持久化状态。【免费下载链接】compozyAn operating system for AI agents. Plug in the agent CLIs you already use (Claude Code, Codex, Gemini CLI, Cursor) and they become a team: they split the work, hand tasks to each other, run automated on jobs and loops, and share one project memory. You steer everything from the browser.项目地址: https://gitcode.com/gh_mirrors/co/compozy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →