ARTICLE · 1050427
开源第一天,从ZCode 源码里开始吃瓜
一、模型请求静默改道:你配置的官方端点,实际发往 ZCode 网关
[official-coding-plan-gateway.ts]内置一张精确匹配表:
https://api.z.ai/api/anthropic/v1/messages→ 改发 zcode.z.ai/api/v1/ultra-zai/anthropic/v1/messageshttps://open.bigmodel.cn/api/anthropic/v1/messages→ 改发 zcode.z.ai/api/v1/ultra/anthropic/v1/messages
按协议、主机、端口、路径精确匹配,命中后除 Host 头外全部请求头——包括你的鉴权凭证——原样透传给 ZCode 网关,无逐次用户确认。官方注释称这是“套餐权益校验等平台侧处理”。
争议点有三个:
- 判断依据是 URL,不是 provider 来源。
你自己手动创建的 provider,只要 URL 指向这两个官方 Anthropic 兼容端点,一样被改道。[NOTICE.md]自己承认:“判断依据是请求 URL,不能因提供商由用户自行创建就推定一定绕过网关。”而代码注释却写着“用户自建 provider 与第三方模型服务不受影响”——两份自述,微妙地不完全一致。 - 每次请求附带
x-zcode-session-type头,把调用方标记为 main/subagent/other([runner-attribution.ts])——后台按会话类型做归因的用途,客户端不可见。 - 网关收到请求后做什么,不在开源范围内。
NOTICE 原话:“网关收到请求后的内部处理不属于客户端源码已核验范围。”
公平地说:改道只命中这两个官方端点,DeepSeek、OpenRouter 等第三方端点不受影响。但“我到底在和谁通信”这个问题的答案,确实由客户端代码替你做了主。
二、提示词血统:Claude Code 的骨,Gemini CLI 的皮
[identity.ts]里的系统提示词,与 Claude Code 的公开系统提示词逐字一致的部分包括:安全声明整段("IMPORTANT: Assist with authorized security testing...")、# Harness 块五条("Github-flavored markdown in a terminal"、"a denied call means the user declined it — adjust, don't retry verbatim"、"file_path:line_number — it's clickable")。
工具面同样对齐:Edit/Glob/Grep/Bash/TodoWrite/Skill/AskUserQuestion/plan mode,甚至有 Claude Code 标志性的 system-reminder/ 目录。而子代理的环境块("Here is useful information about the environment you are running in..." + <env> 标签)是 Gemini CLI 的格式([system-prompt.ts])。
提示词本身不受 Apache-2.0 覆盖,这是版权灰色地带。有意思的是法务功课做得很足:THIRD-PARTY-NOTICES.md 有 1.9MB、1201 个包条目,连“Superpowers 技能描述改编(MIT,Copyright 2025 Jesse Vincent)”都单独署名。
三、开源的是源码,发行的是字节码
[build-desktop-agent-bytecode.mjs]把 agent 编译成 .jsc V8 字节码,加载器以原子替换方式分发,且 coverage 构建被显式禁止使用字节码。也就是说:GitHub 上能看到提示词源码,但官方桌面发行物里的 agent 是字节码——效果上,普通用户无法在安装包里审计实际运行的提示词和逻辑。开源与可审计之间,隔了一层字节码。
四、隐私清单:NOTICE.md 里的“坦白从宽”章节
以下全部是 NOTICE.md 自己写明的:
- 模型输入输出日志默认写入本地
,“可能含提示词、代码、上下文、工具参数和模型回复”,仅部分脱敏; - 凭据加密密钥“可从本机环境信息派生”
,明文记录也会被读取逻辑接受——不是系统钥匙串; - Anthropic 兼容调用附加设备和会话标识
; 桌面端使用阿里云 ARMS RUM 监控,console.error 的正文内容会上报。他们还 patch 了 SDK([patches/@arms__rum-electron@0.0.3.patch])修复原版只取第一个参数丢正文的 bug,并加了 api-key/token/Bearer 正则脱敏——patch 质量确实高,但也坐实了上报行为本身。
五、生态兼容明牌:插件体系直接吃下 Claude Code 和 Codex
[marketplace.ts]同时识别 .claude-plugin/plugin.json 和 .codex-plugin/plugin.json——Claude Code 插件和 Codex 插件可以直接装进 ZCode。命中 opencode.ai/zen/go/v1 时还会主动发送 x-opencode-session 头与 OpenCode Zen 互操作。内置模型目录([zcode-builtin.json])列满友商全家:claude-fable-5-1、grok-4.6、gpt-5.6-terra、kimi-k3、qwen3.8、deepseek-v4……与其说是竞品,不如说是把整个市场做成了自己的接入层。
写在最后
ZCode ,你还会用吗?