ACP协议适配
Agent Client Protocol Adapter
实现Agent Client Protocol标准协议,使标准客户端可接入自定义Agent系统
子问题
1.协议翻译层
2.会话映射
3.速率限制
4.流式通信
5.增量文本流提取(累积全文到差量 chunk 转换)
6.Gateway 断连时的 pending promise 批量清理
7.内存会话 LRU 淘汰与活跃 run 保护
各项目的解法1 solutions
Signals
横向对比
| 维度 | OpenClaw |
|---|---|
| 协议翻译架构 | Translator 类实现 ACP Agent 接口,内部持有 GatewayClient 做 RPC 转发 |
| 会话映射 | 双 ID 映射(UUID ↔ 业务键),三路径解析(label → key → fallback) |
| 速率限制 | 固定窗口限流器,120 次/10s,仅限 session 创建 |
| 流式通信 | ndJSON over stdin/stdout,增量文本提取(累积全文 slice 差量) |
| 输入防御 | 逐块字节计数 + 最终组装二次检查,2MB 上限(CWE-400) |
| 会话生命周期 | 内存 LRU 存储,5000 上限 + 24h TTL,活跃 run 不淘汰 |
| 工具事件翻译 | inferToolKind 关键词匹配推断工具类型,toolCallId Set 去重 |
最佳实践
1.标准协议兼容
2.session映射隔离
3.prompt前缀注入
4.逐块字节计数防 DoS,在内存分配前拒绝超大输入
5.idempotencyKey 关联 ACP prompt 与 Gateway run 防重复
6.凭证文件读取替代命令行参数防进程列表泄露