Skip to content

Differences from opencode zh

Lex edited this page Aug 15, 2026 · 1 revision

与 opencode 的差异

GraphAgent 是 opencode 的 fork,不是对它的替代意见。上游能做的这里都还在:多 Provider、内置 LSP、客户端/服务器架构、TUI/桌面/Web 客户端。fork 加了一个大东西和一批配套。

大东西:DAG 工作流引擎

上游 opencode 跑一个智能体循环,可选 task 子代理。GraphAgent 在其之上加了工作流引擎:

上游 opencode GraphAgent
并行工作 task 子代理,发出去不管 依赖图 + 波次调度、并发许可、每节点预算
质量控制 靠你的 prompt 审查门禁编译成独立 standards/intent 审查加仲裁;REJECT 是真实结果,有处置契约
持久化 会话存储 事件溯源的工作流状态;崩溃恢复从持久证据和解,绝不重放 provider 工作
中途改写 杀掉重来 pausereplan(替代/替换/取消节点)→ resume;已完成输出保留;视图显示当前修订
成本塑形 一个会话一个模型 dag.jsonc 两层:判断节点 advanced,跑量 standard
可观测 转录 TUI DAG 检查器(波次、实时状态、节点详情)、侧边栏摘要、全覆盖的 HTTP API
复用 自定义命令 项目/全局/内嵌三级命名工作流库;/dag-flow 按任务改造精选参考拓扑

引擎按 AGPL 授权(见 README 许可表);仓库其余部分保持 MIT——不碰 DAG 代码,你就按上游条款用。

配套增补

  • 自主目标循环/goal):图的单会话互补形态——一个持久目标跨回合推进,外部评审、有预算、可恢复。
  • Hooks 兼容:在原生插件系统之上实现 Claude Code hooks 协议(26 事件 × 5 种执行类型)。
  • 执行位置所有权:多 worktree 场景下,工作流行带目录戳、每次所有权决策都校验——同一项目的兄弟 worktree 不能替对方操作图。这块经过三轮加固(issue #238、#269、#270),全部带突变测试探针。
  • CJK/IME 终端修复、按工作流的 worktree 隔离、独立的 Go 配置助手。

怎么选

想要主流项目——npm 包、社区、跟原团队同步更新——选上游 opencode。

你的工作长成下面任何一样,选 GraphAgent:

  • 任务有分阶段依赖,并行切片真有用武之地(多模块重构、先审计后修复的列车、并行审查泳道)。
  • 需要比 prompt 更可信的门禁——指纹绑定的审查仲裁、红先行的回归纪律。
  • 长任务要能扛住重启,且不重做已经付过钱的模型调用。
  • 想让判断跑强模型、跑量跑便宜模型,且在配置里声明一次全局生效。

两者可以共存:不开 DAG 功能的 GraphAgent 就是上游 opencode。

升级姿态

fork 周期性跟上游;上游特性经 merge 进来,fork 特性走分层门禁(feat/** → PR → dev typecheck 门禁 → dev 全量 → dev→main 四门禁 PR 含 Linux/Windows E2E → 手动发版)。Release 带完整笔记;已知限制列出来,不藏。

Clone this wiki locally