
原文链接智谱ZCode全开源313MB偷传争议后三端一核·统一Agent运行时全拆解9月21日智谱把旗下AI编程工具ZCode整个推上了GitHub。这不是一场精心策划的营销发布而是一次危机后的“摊牌式开源”。三天前有开发者发现ZCode在登录状态下会把整个工作区打包静默上传到阿里云OSS三天后智谱选择把代码摊开给所有人看邀请信通院、绿盟做安全审计并上线“数据不留存”功能。从“被指偷传”到“全量开源”事件脉络与开源考虑事情的时间线很短。9月18日前后技术博主ferstar在排查磁盘使用时发现ZCode本地目录里出现了一个约313MB的加密包。伴随的文件清单显示这个包覆盖了约4.2万个文件其中八成以上是项目历史修改记录。更关键的是它正被尝试上传到阿里云OSS且解密密钥只在智谱服务端。博主观察到在单次会话里这个快照机制最多触发了62次记录一个15KB的小文件已经成功外发。相关功能默认开启且缺少有效关闭开关开发者社区迅速炸锅。智谱当天就在官方用户群里道歉解释称该功能用于“会话检查点恢复、历史版本回退和Repo Wiki生成”。Repo Wiki在云端生成页面后上传数据会立即销毁不会保存也不会用于模型训练。但“默认开启缺少显式授权”已触碰数据安全红线。9月20日智谱MaaS平台上线“数据内容不留存”功能用户输入输出仅在当次请求中临时使用结束后不落盘。9月21日ZCode v3.14.0正式开源Repo Wiki入口被移除本地仓库快照的生成和上传链路被切断。中国信通院和绿盟科技的两份审计均确认zcode-prod阿里云OSS存储桶“云端零数据”全部数据对象及存储桶本身已删除。对智谱而言开源不是“额外动作”而是把审查权交给社区、重建信任的最短路径。当代码可以被任何人拉下来检查时声明才有说服力。ZCode是什么这次到底开源了什么ZCode是智谱官方定义的Agentic Development Environment智能体开发环境ADE。和传统IDE插件不同它把对话窗口作为主界面编辑器、终端、Git、浏览器预览都变成Agent可调用的工具。模型层与产品层解耦默认接GLM也支持OpenAI或Anthropic兼容接口。这次开源的不是一个Electron客户端而是整套产品。仓库采用标准pnpm monorepo主要模块如下模块作用用户价值apps/zcode-cliAgent CLI、TUI、运行时与工具系统终端里敲zcode即可启动无需Electronpackages/desktopElectron桌面主进程与渲染层支持Windows、macOS、Linuxx64与arm64packages/webWeb工作台React 本地后端浏览器里跑zcode --web即可使用packages/ui共享React组件与状态桌面端和Web端像素级一致packages/shared/rpc/services/server协议类型、通信契约、业务服务、HTTP:3030网关三端共用同一套业务层dynamic-workflow动态工作流引擎让主Agent用TypeScript脚本编排Sub-Agent开源首日ZCode 在 GitHub 的 Star 已突破 5000、Fork 超 1500迅速登上热榜。社区用脚投票说明大家真正想要的是“可审计、可换模型”的开源 Coding Agent这也从热度上印证开源的不是 demo而是一套生产级产品。撇开热度单看代码结构同样扎实——它是一个分层清晰、模块边界明确的大型 monorepo桌面端、Web 端、CLI 与共享层各司其职Agent 运行时独立成核。宏观架构三端一核共享Agent运行时从目录结构可以把ZCode抽象成“三端一核”。最上面是三个入口桌面端Electron、Web端React、命令行TUI。三者共享同一套Agent运行时不是三个项目假装一个产品。中间层是packagesui提供设计系统shared与rpc负责类型协议和通信契约services处理业务与持久化server承担HTTP:3030网关和WebSocket统一接入三端请求。最下面是Agent运行时位于apps/zcode-cli/packages/core。它是整个系统的大脑拆成四根柱子回合状态机、工具系统、子代理和上下文工程。所有上层交互最终都会落到这一层执行。公开分析指出仓库里有一份architecture-policy.yaml核心作用是约束层间依赖。比如UI组件不许直接调服务必须走hooksElectron主进程只管窗口和原生操作禁止碰业务状态。这种“把架构师的经验写成CI规则”的做法在大型Agent项目里并不多见。Coding Agent如何组织和运行ZCode的Agent运行时把一次对话回合拆成严格的状态流输入→上下文组装→流式响应→工具调用→结果回填。每一步都有明确归属哪一步出错就查哪一步。工具体系采用注册表、调度器、执行器三层分离。所有读过的文件会被file-state跟踪工具路径受path-policy约束。内置工具之外MCP的stdio、http、sse三种协议都支持意味着开发者可以直接接入社区已有的MCP服务器。子代理系统是隔离重活的关键。Explore型子代理只读负责探索代码库general-purpose型子代理可以写文件承担具体实现。主Agent把脏活外包出去自身上下文不被污染。每个子代理有独立的工具策略写权限不是默认给的。上下文工程则解决长会话的“上下文爆炸”问题。compact负责会话压缩memory负责跨会话记忆system-reminder在对话中动态注入系统提示。它的做法不是简单截断而是压缩、外置、按需召回。如何通过Workflow编排多个Sub-AgentZCode的动态工作流允许用户通过/workflow命令启动一个由多个Sub-Agent协作完成的复杂任务。使用侧的体验很像写一段“任务剧本”先声明有哪些子任务、每个子任务由哪个角色的Agent负责然后由主Agent统一调度。支撑这套体验的是dynamic-workflow包。主Agent会把用户意图翻译成一段TypeScript脚本脚本里明确定义输入输出类型和Sub-Agent调用关系。编译器会对脚本做类型检查和schema合成随后把它放到一个子进程vm沙箱里执行。这种设计的意义在于模型的即兴发挥被类型系统约束住了。它不是“想好再动”而是“先写成有类型的代码再动”。沙箱执行还能隔离风险即使工作流脚本出错也不会污染主Agent的上下文或随意修改文件。Sub-Agent之间共享仓库上下文但保持独立内部状态。用户只需要在脚本里定义清楚角色边界系统就会自动把读写权限、工具策略和上下文隔离落实到位。动态工作流和普通工作流有什么区别普通工作流通常是预定义好的模板节点和边在代码里写死运行时再填参数。ZCode的动态工作流则允许主Agent在运行过程中“写代码来定义流程”。遇到复杂任务时它可以先生成一段TypeScript工作流脚本编译通过后再调度执行。一次/workflow就能完成跨文件重构、批量生成单测、依赖审计等过去要多次对话的长链路任务。它把“规划”与“执行”拆成两步规划产出可类型检查的代码执行被沙箱隔离既保留模型灵活性又把流程纳入工程约束。分级执行模式把权限交给用户而非模型ZCode 提供四档权限。Plan 模式先出变更方案等人拍板confirm-before-change 对终端、改文件、联网等高风险动作再加一次确认auto-edit 允许低风险改动自动落地full-access 放开权限适合可信的长任务。按任务风险自己选档切换成本很低。权限门禁嵌在工具调用链路上。每次工具调用先过策略层命中高风险类型就触发确认或拦截模型无法绕过。这种“权限渐进”思路与 Gartner 对 AI Agent 治理风险的提醒一致自主越强越要把刹车交给人。Goal Mode让 Agent 带着可验证目标长跑用户用一个可验证的高层目标启动 Goal Mode比如“让这个接口通过全部单测”。之后 Agent 自主规划、执行、测试、回顾用户随时能看进度看板、暂停、注入纠正或标记完成不必守在对话框前。目标被拆成有序子任务进入“计划—执行—测试—复盘”循环直到目标被验证完成或卡在需要人决策的点。进度写成持久化检查点会话重启不丢直接解决传统 AI 编程“关窗即失忆”的痛点。MCP 与插件把外部能力接进 AgentZCode 内置 20 多个工具覆盖 Git、终端、文件浏览、浏览器上下文还支持把 MCP 服务器打包进插件。更省心的是能直接复用为 Claude Code、Codex CLI、OpenCode 准备好的 MCP 配置换工具不换生态。工具注册表支持 MCP 的 stdio、http、sse 三种传输。插件安装后它携带的 MCP 服务器被动态加载进工具系统新能力无需改核心代码就能挂上扩展边界交给社区。远程任务与空闲调度让 Agent 在别处替你跑Remote Control 让你在手机或 Web 端审批桌面上的长任务Idle Task 能把批量补单测、注释重构等非紧急活排队等机器空闲再跑不占你干活时的资源。远程通道只传元数据、diff 预览和审批信号真正的文件写入和 shell 执行仍发生在原开发机空闲调度基于本地资源探测触发。文件不出本机破坏性动作仍需手动确认。多模型 BYOK 也是标配除 GLM 外还支持 OpenAI、Anthropic、DeepSeek 等兼容接口模型层与产品层解耦。写在最后开源之后考验才真正开始ZCode的开源事件把AI编程工具的一个长期问题摆到了台面上当Agent能读文件、调终端、改代码时厂商如何证明自己不会顺手把用户数据搬走智谱的回应是开源代码、第三方审计、零数据留存。但开源不是终点。代码透明之后漏洞响应机制能否持续、后续版本是否保持干净、社区贡献能否真正改善架构才是重建信任的关键。你怎么看Coding Agent的“数据安全”与“功能便利”之间的平衡你会优先选择可本地审计、可换模型的开源方案还是体验更丝滑的闭源工具欢迎在评论区聊聊觉得有用的话点个「在看」「收藏」方便下次回看。【欢迎访问我的个人博客主页这里有我的精选文章和AI大模型日报专栏。