Skip to content
Lex edited this page Aug 15, 2026 · 1 revision

常见问题

配什么模型?

dag.jsonc 两层:advanced 给判断节点(审查、仲裁、所有 required),standard 给跑量。只配一层时它就是全部默认。每节点解析顺序:分层 → worker agent 模型 → 父会话模型;都解析不出来就不建工作流,回来问你——绝不静默挑一个你没选过的默认值。

一张图多少钱?

每个节点是一个子会话,像普通对话一样花 token。成本控制是结构性的:standard 层扇出到便宜模型、max_total_nodes 封图、每节点 timeout_ms 兜住失控、审查预算(max_node_replan_attempts)封重试循环。贵的图走 deep 准入——为了不在错误的规模上建错的东西。

模型配额用完了怎么办?

节点失败,错误清楚地显示在图上;工作流保持可检查。把 dag.jsonc 里的分层切到备用模型,然后 replan 失败节点(新 id 替代,或运行中 restart: true)。已完成的节点保留输出——只为重跑的部分付钱。

和上游 opencode 什么关系?

上游能力全保留(多 Provider、LSP、客户端/服务器、TUI/桌面/Web)。fork 加了 DAG 引擎(AGPL 授权,见 README 许可表)、hooks 兼容层、CJK/IME 终端修复、按工作流的 worktree 隔离、目标循环。fork 不上 npm;从 releases 页面或源码装。

不用图功能可以吗?

可以——就是纯 opencode。图相关的一切都在 workflow 工具、/dag-flow/goal 命令、.opencode/ 配置文件后面。不碰它们,行为与上游一致。

工作流扛得住重启吗?

扛得住。状态事件溯源进 SQLite;重启时,running 节点对照子会话的持久状态和解,跑完的回填输出,有歧义的暂停等你决定。恢复绝不重放 provider 工作——半个模型调用不会在你背后被重发。

为什么有节点失败工作流却显示 completed?

因为失败的段落被改写过。被替代节点从视图退场、不计入终态;你看到的状态对应当前图修订。如果失败是活的——配额耗尽、API 报错、超时上限——它会一直显示直到修好。想审计改写历史,智能体可以按 id 从 result store 查被替代节点;TUI 故意不给入口。

节点能跑 shell、读文件、用 MCP 吗?

节点是完整子会话,工具和主智能体一样多,范围由 worker_type 的 agent 配置决定。权限行为与 opencode 其他地方相同,包括 hooks 和询问门控。

怎么和团队共享工作流?

spec 提交进仓库的 .opencode/workflows/——克隆的人都能按名跑。跨项目的个人库放配置目录全局作用域。精选全局库由 opencode-dag-config 仓库维护,/dag-template-update 负责同步(带预览和备份)。

Clone this wiki locally