zero CLI 运行流程

入口 → 命令分发 → 配置解析 → 两条启动路径 → 共享 Agent 循环与子系统

交互式 / 一次性 agent.Run(每轮) cmd/zero/main.go os.Exit(cli.Run(...)) cli.Run → runWithDeps appDeps 依赖注入 · panic→crash 报告 拆 --add-dir / --theme · switch(args[0]) 命令分发 Dispatch internal/cli/app.go 按子命令路由到对应 run* 函数 交互式 TUI runInteractiveTUIWithSetup (none) / --skip-permissions-unsafe 无 provider → 进 setup 向导 一次性 exec runExec (internal/cli/exec.go) -p / exec / spec / verify eval / changes / cron 认证 / 配置 auth · setup · config · providers models · doctor · mcp · sandbox hooks · plugins · skills · init 服务 / 只读工具 daemon · serve · acp context · search · sessions ⚠ 监听器鉴权需另行确认 共享启动装配(TUI 与 exec 相同) config.Resolve — 分层配置解析 1. 用户配置 ~/.config/zero/config.json 2. 项目配置 <workspace>/.zero/config.json 3. 环境变量 ZERO_PROVIDER / API keys 4. provider 命令 5. 程序 Overrides 6. normalizeProviders → 选定活跃 Provider ErrNoActiveProvider(仅 TUI)→ 降级进 setup,不致命 sandbox.NewScope + buildProvider 写根限制 · providers.New(OpenAI/Anthropic/Google/本地, OAuth) ZERO_PROVIDER 导出 → 子进程复用同一 provider 工具注册表 Registry + Sandbox 引擎 核心工具 CoreToolsScoped read/write/edit bash · glob · grep FileTracker Specialists specialist.Runtime swarm.Swarm Task 委派工具 子 agent = exec 子进程 MCP 工具 mcp.RegisterTools 权限 / token 存储 不可达服务器 跳过而非中断 Plugins activatePlugins 工具 + hooks + skills 根目录 失败即跳过 tool_search 超阈值折叠 agent.Run — 共享 Agent 循环 internal/agent/loop.go partitionTools(按权限暴露/延迟)→ 上下文压缩 → provider 流式 → 执行工具(Sandbox + 权限门 + Hooks)→ OnText/OnToolCall/OnResult/OnUsage Provider internal/providers 流式 · 断线重连 · OAuth Tools Registry internal/tools 工具执行 · 结果回传 Sandbox Engine internal/sandbox 策略 · 后端 · 授权 MCP / Specialist internal/mcp · swarm 外部工具 · 子 agent 委派 图例 入口/TUI/循环 exec/工具/Provider 配置/Sandbox Registry 认证/配置 MCP/外部

入口与分发

  • cmd/zero/main.gocli.Run
  • runWithDepsappDeps 依赖注入 + panic→crash 报告
  • switch(args[0]) 路由到各 run*
  • • 四类:TUI / exec / 认证配置 / 服务只读

配置解析(六层)

  • • 用户 ~/.config/zero/config.json(macOS 亦然)
  • • 项目 .zero/config.json → 环境变量
  • • provider 命令 → Overrides → normalize
  • ErrNoActiveProvider 仅 TUI 降级进 setup

Agent 循环与子系统

  • • TUI / exec 都汇入 agent.Run
  • • 每轮:分区工具 → 压缩 → 流式 → 执行工具
  • • 工具受 Sandbox + 权限门 + Hooks 约束
  • • 子系统:Provider · Tools · Sandbox · MCP · Specialist