新闻详情

新闻详情

首页 / 资讯中心 / 详情

300 行写个协议桥:让 Claude Code 走 ACP 通道,吃 ZCode 套餐约 1.5 倍额度

发布时间:2026/10/2 8:26:10来源:尧图网络
300 行写个协议桥:让 Claude Code 走 ACP 通道,吃 ZCode 套餐约 1.5 倍额度
本文记录一个真实可跑的协议桥实现拦截 Claude Code 的/v1/messages请求转交给 ZCode 的 headless app-server再把流式事件翻译回 Anthropic SSE。全部基于 307 行 Node.js 源码无第三方 HTTP 依赖。文末总结了 5 个实测踩过的坑。为什么需要这座桥先说清楚动机——不是为了用国产模型而是额度经济学。Claude Code 是目前最顺手的终端 AI 编程工具但直接用它只能消耗 Anthropic 官方套餐。而把它的请求桥接到 ZCode 的 Coding Max 套餐通道后请求按 ZCode 的额度扣率计费——以我手上的套餐实测抵扣系数约 0.67同样额度的有效用量约等于放大到 1.5 倍具体扣率以官方当前政策为准。顺带的收益是模型本身也换成了 GLM 系列对日常编码场景完全够用。但两者协议完全不同Anthropic 侧一次性 HTTP POST回来的是message_start → content_block_delta* → message_stop这套 SSE 事件ZCode 侧要先session/create建会话session/send发内容然后从事件流里订阅model.streaming、turn.completed等事件。缺的就是中间的翻译层。先交代两个名词ACPAgent Client ProtocolAgent 客户端协议是一套让编码 Agent 前端与后端模型服务解耦的 JSON-RPC 协议zcode-acp-server是它的 Node 实现ZCode 的 headless 模式叫app-server本文的桥就是Anthropic Messages 协议 → ACP 后端的翻译官。核心思路一句话本地起一个只听 127.0.0.1 的 HTTP 服务把 Anthropic 协议的请求翻给 ZCode把 ZCode 的事件流翻回 Anthropic SSE。架构三段式Claude Code ──HTTP/SSE── 桥接服务(127.0.0.1:8080) ──JSON-RPC── zcode app-server │ ├─ 1. 收 /v1/messages压成 prompt 文本 ├─ 2. session/createmodeyolo subscribe ├─ 3. session/send 送入 prompt └─ 4. 轮询事件流 → 翻译成 Anthropic SSE桥接复用了现成的zcode-acp-server构建产物ZcodeBackend/EventStreamListener/ 凭证加载自己只写协议转换——这是它只有 307 行的原因。难点一app-server 会反向找你要东西最隐蔽的坑在这里session/create过程中app-server 会反过来向桥接发请求server→client 方向其中// zod .strict() 对象nativeSearchEnhancementsEnabled 必填 booleanb.sendReply(req.id,{nativeSearchEnhancementsEnabled:true,memoryEnabled:false,askUserQuestionAutoResolutionEnabled:true,});session/requestRuntimePreferences用的是 zod.strict()校验——少一个必填字段就直接报错而你不回复它session/create就永远挂起表现为一个干巴巴的 timeout日志里毫无线索。解法是一个 100ms 轮询的drainer排水泵后台持续pollServerRequests()把反向请求分类回复——运行时偏好回默认值interaction/requestPermission回allowyolo 模式免得工具调用卡住interaction/requestUserInput回declineheadless 场景没人能答题未知方法一律回空对象兜底。这个模式可以推广任何客户端SDK里嵌着服务端回调的协议对接时第一件事就是把回调通道接住否则主流程必然莫名超时。难点二两套流式协议的对齐Anthropic 的 SSE 是严格的事件序列少一环客户端就报错message_start → content_block_start → content_block_delta* → content_block_stop → message_delta(含 stop_reason 和 usage) → message_stop而 ZCode 侧给的是model.streamingpayload.kindtext_deltaturn.completed/failed。翻译循环的关键细节先发头再发送session/send之前就先把message_start/content_block_start写出去——否则可能丢掉早到的turn.completed轮询 心跳pollEvent(1000)循环里维护lastProgress超过TURN_TIMEOUT_MS默认 180 秒没进展就按超时收尾stop_reason 映射turn.completed → end_turn超时 →max_turn_requeststurn.failed→ 把错误文本塞进 delta 再正常收尾客户端不会因异常断流usage 编造ZCode 不回 token 数用output_chars / 4估算——SSE 里 usage 字段必须有数值不准但协议合法。难点三多轮历史的降维Anthropic 请求里是结构化的messages[]可能还带 tool_use/tool_result 块而 ZCode 每次create都是全新 session。桥接的处理是把历史压平成一段文本functionbuildPrompt(request){// [system]\n... \n\n[user]\n... \n\n[assistant]\n...}文本块类型的 content 直接拼接非文本块图片等丢弃。这是有损压缩但对用 Claude Code 干活这个场景够用——因为真正需要长上下文的是 ZCode 自己的 session 内工具调用历史 prompt 只是开场白。五个实测坑都是拿报错换来的ANTHROPIC_BASE_URL千万别带/v1后缀。Claude Code 会自动拼/v1/messages你写成…:8080/v1就变成/v1/v1/messages→ 404。写http://127.0.0.1:8080就好Node 必须 ≥22底层zcode.cjs依赖内置的node:sqlite低版本直接起不来只监听 127.0.0.1 并校验 remoteAddress桥接是本地代理性质对外开放等于把你的模型配额变成公共 APIZCode 重启后必须重启桥接桥接 fork 的 app-server 子进程会跟着断而且平台刷新后的 provider key 也要重新读取modeyolo的边界工具权限自动放行必须配 workspace 白名单桥接日志里明确打了警告——自动化的代价是把安全决策交给作用域限制别把 workspace 设成整个家目录。收尾做完这个桥的最大体会AI 工具的互操作性问题本质是事件流方向和状态机生命周期两类问题。反向请求要有人接方向问题session 要有人管生命周期问题——这两件事解决了剩下的只是字段名对齐的体力活。完整源码 307 行欢迎在评论区交流你对接过的其他 AI 工具协议。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

UG NX基准坐标系全解析:创建方法、应用实战与避坑指南 2026/10/2 9:17:49

UG NX基准坐标系全解析:创建方法、应用实战与避坑指南

做UG NX建模这么多年,如果让我选一个“看着不起眼但影响全局”的功能,基准坐标系绝对排前三。很多人刚接触NX时,会把它当成一个摆设——不就是模型树里那个CSYS嘛,反正我直接画草图、拉伸也能干活。但等到要出工程图、做装配、导出…

阅读更多 →
OpenCV指纹识别实战:预处理、特征提取与匹配全链路 2026/10/2 9:17:48

OpenCV指纹识别实战:预处理、特征提取与匹配全链路

简介:这是一套面向计算机、信息安全等专业师生及技术人员的指纹识别实践项目,采用Python结合OpenCV构建完整识别流程,可作为毕业设计参考或图像处理进阶练手素材。资源包共19个文件,约383KB,以11个py源码文件为核心&am…

阅读更多 →
内网横向移动实战详解:从底层逻辑到域渗透核心手法 2026/10/2 9:17:42

内网横向移动实战详解:从底层逻辑到域渗透核心手法

干了这么多年内网渗透和攻防演练,我对横向移动这三个字可以说是又爱又恨。爱它,是因为真正把横向移动玩明白了,你对内网的整体掌控力会上一个大的台阶;恨它,是因为带团队做红队评估时,最怕的就是成员只记住…

阅读更多 →
家政预约系统二次开发实战:订单状态机与佣金结算核心设计 2026/10/2 9:17:42

家政预约系统二次开发实战:订单状态机与佣金结算核心设计

简介:likeshop上门家政系统开源版源码是一套基于likeadmin-php框架开发的上门预约系统,面向需要搭建家政服务平台的开发者与本地生活运营商。系统将用户端与师傅端深度融合,覆盖地图定位、在线预约、自动派单、后台派单、下单支付、核销订单等…

阅读更多 →
Redis 8 原生向量数据库实战:百万级 RAG 应用架构收敛与性能调优 2026/10/2 9:17:42

Redis 8 原生向量数据库实战:百万级 RAG 应用架构收敛与性能调优

1. Redis 接入 AI 这件事,到底在说什么Redis 官方在 2024 年正式发布了 Redis 8,其中最引人注目的变化就是原生集成了向量数据库能力,并且推出了 Redis Query Engine 和 Redis Insight 的 AI 辅助功能。简单说,Redis 不再只是一个…

阅读更多 →
从青少年开源论坛到第一次PR:新手参与开源项目的完整路径 2026/10/2 9:17:42

从青少年开源论坛到第一次PR:新手参与开源项目的完整路径

1. COSCon与青少年开源:这个论坛到底在讲什么 COSCon全称China Open Source Conference,圈子里都叫它“中国开源年会”。这些年每年都参加,现场氛围一直很热闹,但说实话,早几年的议题基本围绕企业级开源、基础设施、云…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉