概述
ACP(Agent Communication Protocol)是 Tron 的 Agent 间通信协议,支持多 Agent 协作。通过 ACP,多个 Tron 实例可以在同一任务中协同工作,由 Orchestrator Agent 统一协调,Sub-Agent 并行执行子任务,大幅提升复杂工程任务的执行效率。
ACP 基于本地 Unix Socket 或 TCP 通信,消息格式为 JSON,设计目标是轻量、低延迟,适合本地多进程协作场景。
架构
ACP 采用 Orchestrator / Sub-Agent 通信模型:
- Orchestrator Agent:主 Tron 实例,负责任务分解、Sub-Agent 调度和结果汇总
- Sub-Agent:工作 Tron 实例,接收子任务,执行后将结果返回给 Orchestrator
- 消息总线:Orchestrator 监听 ACP 端口,Sub-Agent 主动连接并注册
text
用户请求
│
▼
Orchestrator Agent (主实例)
├── Sub-Agent A: 处理前端代码
├── Sub-Agent B: 处理后端代码
└── Sub-Agent C: 运行测试套件
│
▼
汇总结果 → 返回用户
每个 Sub-Agent 是独立的 Tron 进程,拥有独立的上下文窗口,互不干扰,可真正并行执行。
启用 ACP
在 config.json 中通过 acp 字段配置并启用 ACP:
json
{
"acp": {
"enabled": true,
"port": 7700,
"host": "127.0.0.1",
"token": "your-secret-token",
"maxAgents": 4,
"agentTimeout": 300000
}
}
配置说明:
port:ACP 监听端口,默认 7700host:监听地址,强烈建议保持127.0.0.1(仅本地访问)token:认证令牌,Sub-Agent 连接时需提供maxAgents:最大并发 Sub-Agent 数量agentTimeout:Sub-Agent 任务超时时间(毫秒)
多 Agent 场景
ACP 最适合可以并行分解的大型任务。以下是一个典型的多 Agent 协作示例:
text
# 在 Tron TUI 中发起多 Agent 任务
用户: 将整个项目从 JavaScript 迁移到 TypeScript
Orchestrator 分析任务...
分解为 3 个并行子任务:
[A] 迁移 src/api/ 目录 (43 个文件)
[B] 迁移 src/components/ 目录 (67 个文件)
[C] 迁移 src/utils/ 目录 (28 个文件)
启动 3 个 Sub-Agent...
Sub-Agent A: 正在处理 src/api/...
Sub-Agent B: 正在处理 src/components/...
Sub-Agent C: 正在处理 src/utils/...
[Sub-Agent C 完成] 28 个文件已迁移
[Sub-Agent A 完成] 43 个文件已迁移
[Sub-Agent B 完成] 67 个文件已迁移
汇总结果: 138 个文件成功迁移到 TypeScript
适用场景
多 Agent 协作适合任务可清晰分区、各子任务相对独立的场景。对于相互依赖严重的任务,单 Agent 顺序执行通常更可靠。
安全
ACP 使用 Bearer Token 进行认证,所有 Sub-Agent 连接请求必须携带有效令牌:
json
// Sub-Agent 连接配置
{
"acp": {
"mode": "agent",
"orchestratorUrl": "http://127.0.0.1:7700",
"token": "your-secret-token"
}
}
安全建议:
- 仅限本地使用:将
host始终设置为127.0.0.1,切勿绑定到0.0.0.0 - 使用强令牌:使用随机生成的长令牌,避免使用简单密码
- 避免跨网络暴露:ACP 不内置 TLS,不适合通过网络传输
注意
ACP 设计仅用于本地多进程协作。如需跨机器协作,请使用 Server 模式 并配置适当的网络安全措施。