> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myrmagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Dynamic Workflow 动态工作流

> 通过 Code-as-Orchestrator 模式打破单智能体的上下文限制。

MyRM Agent 的 Dynamic Workflow 引擎是系统的第三代编排层，旨在打破单智能体的上下文限制，通过"一句话调度几百个子代理"来解决大规模、跨领域的复杂任务（如全库 Bug 扫描、大规模代码迁移、多角度深度研究）。

## 核心优势

### 1. 编排灵活性：Code-as-Orchestrator

我们首创了 **Code-as-Orchestrator** 模式。大模型会根据任务动态生成 Python 编排脚本，并在 PTC (Programmatic Tool Calling) 安全沙箱中执行。大模型可以自由使用 `for` 循环、`if` 条件分支和并发线程池，灵活性远超静态的 DAG (有向无环图) 工作流。

### 2. 容错与持久化：四层 Durable Execution

在执行耗时数小时的大型任务时，如果网络断开或电脑休眠，传统工作流会直接崩溃。MyRM Agent 提供竞品无法匹敌的**四层持久化**：(1) `WorkflowEventStore` — SQLite 持久化执行缓存，重放已完成的子代理结果而非重新执行；(2) `SubagentCheckpointStorage` — 完整执行状态快照（消息、工具输出、变量、进度），带文件级锁保护，支持真正的**断点恢复**（强制停止或崩溃后从中断处继续）；(3) Chat DB `progressSteps` — 每个工具执行步骤作为消息元数据持久化，支持事后审查；(4) `event_log/` — 结构化 JSONL 审计日志，用于合规和调试。即使网络断开或服务器重启，工作流也能从断点瞬间恢复，自动跳过已完成的子任务，并在中断的子代理精确断点处继续执行。

### 3. 成本控制与可见性：告别隐形账单

几十个子代理在后台并发烧 Token，很容易产生"隐形账单"。我们提供了 **5 层硬性预算约束**（Token/USD/时间/后代数/并发数），并在前端提供了 **Subagent Dashboard 实时拓扑树** 和 **Live Token 计价器**。您可以清晰地看到每一个并发子任务的进度、耗时和花销。事件驱动的**停滞探测 (Staleness Probe)** 会自动检测子代理是否停止进展——Dashboard 弹出红色告警、IM 推送通知、桌面通知三管齐下，零额外开销（搭载已有 token 使用事件检查，工具执行中 4 倍容忍避免慢工具误报）。每个子代理还通过四个并行通道流式推送**实时工作证明**：`SUBAGENT_LOG`（实时工具执行流）、`FILE_DIFF`（含完整 diff 内容与一键回滚）、`SUBAGENT_PROGRESS`（token/成本/ETA 计数器）和 `ARTIFACT_CONTENT`（生成工件即时推送）——让您随时清楚每个子代理在做什么、改了什么、花了多少，全程实时可见。Dashboard 还配备**高级可视化**功能：**Header Summary** 一览总代理数、活跃数、失败数、累计成本和模型分布；**排序与过滤**控件（按创建顺序/成本/耗时/状态排序；按运行中/失败/叶子节点过滤）；每个分支节点的**子树聚合徽章**显示后代数量、累计成本和 token 用量；以及可折叠的 **Mini Gantt 时间线**——用 CSS 色条渲染每个子代理的执行跨度——全部 GUI 原生实现，零后端改动、零 prompt token 影响。

### 4. 异构模型混编：智能路由

在同一个工作流中，系统会自动将简单的"资料收集"子任务派发给便宜极速的模型（如 DeepSeek V3），而将核心的"逻辑汇总"任务交给最强的推理模型（如 Opus/GPT-4o）。在保证输出质量的同时，帮您将运行成本降低 10 倍到 60 倍。

### 5. 闭环验证：物理沙箱证据

当子代理说"代码修改完成"时，系统会强制拉起一个"只读验证者"，在沙箱中真实运行 `npm test` 或编译命令。只有拿到真实的物理执行成功证据，任务才算真正完成。拒绝 LLM 脑补，交付绝对可靠的成果。

### 6. 后台任务自动唤醒："做完了？自动汇报！"

当您派遣一个耗时较长的后台子代理（如全仓库重构任务），主 Agent 不会傻等——后台任务完成后会自动唤醒主 Agent 继续工作。**AsyncWakeupHandler** 协议桥接了 Harness 框架层和 Server 业务层：子代理完成后，结果自动注入聊天记录，并自动触发无人值守 Agent 运行（3 次重试 + 指数退避 + 每日预算保护）。结合 **看板调度器**（心跳监控、僵尸检测、定时唤醒）和 **6 项空闲维护任务**（记忆巩固、认知推导、上下文压缩等），MyRM Agent 实现了真正的"发射即忘"自主运转。如果服务器重启，**OfflineDurableTask** 会从数据库检查点自动恢复被中断的任务。当您离开时后台任务运行完毕，**离线守护（Offline Guardian）** 会精确区分成功与失败——通过 SSE error chunk 检测 + 语义错误标志双保险（防止序列化格式变化导致误判），确保您看到的是「任务已完成」或「任务失败」并附带一键跳转对话链接，而不是一个模糊的通用通知。

### 7. 非关键路径容错保护：优雅降级，不因一颗老鼠屎毁掉整锅粥

在复杂的 DAG 计划中，并非每个步骤都同等重要。MyRM Agent 支持步骤级别的 **`allow_failure` 声明式容错** —— 将任何步骤标记为非关键步骤，如果该步骤失败（即使经过 3 次自动重试），它会优雅降级为 `skipped` 状态而非 `failed`。依赖它的下游步骤继续正常执行，整体任务仍可成功完成。

**真实场景举例：** 在多源研究任务中，某个搜索引擎 API 被限流失败。MyRM 不会中止整个研究，而是跳过该数据源，继续使用其余数据源，最终交付完整报告。竞品框架则会因为任何单个步骤失败而中止整个 DAG。

这项能力是 MyRM 独有的 —— 没有任何竞品框架（Claude Code、CrewAI、Dify、OpenHands、Hermes）支持 DAG 节点级 `allow_failure` 声明。结果：多步骤工作流中的 **任务成功率提升 30%+**。

### 8. 一键工作流开关：比 Ultra Mode 更智能

OpenAI 在 GPT-5.6 Sol 中推出了"Ultra Mode"——一键开启 4 个并行 Agent 处理复杂任务。MyRM 的 **WorkflowModeToggle** 提供了等价的一键激活，但设计更优：

|          | OpenAI Ultra   | MyRM 工作流模式                                         |
| -------- | -------------- | -------------------------------------------------- |
| **编排方式** | 固定 4 并行 Agent  | LLM 动态决策并行数和编排策略                                   |
| **持久化**  | 无              | 四层持久化（SQLite + Checkpoint + Chat DB + JSONL）+ 断点恢复 |
| **成本安全** | 无（3-5x 成本，无控制） | 预算熔断 + 发送后自动重置                                     |
| **进度可视** | 黑盒             | 4 种 SSE 事件 + 分类进度条                                 |
| **结果汇总** | 简单合并           | 四级可信度分类（✅/⚠️/❌/💥）                                 |
| **编排模式** | 1 种（固定并行）      | 4 种原语（delegate/batch/swarm/workflow）               |

开关在消息发送后自动重置为关闭状态，防止后续消息意外触发高消耗——这是 OpenAI Ultra 所缺乏的安全机制。

### 9. 规划护栏：聚焦执行，杜绝规划失控

当 LLM 规划多步骤任务时，有两种常见的失控场景：**过度规划**（生成 50+ 条琐碎计划项，浪费 Token）和**多焦点漂移**（同时将 3-5 个任务标记为"进行中"，结果一个都没完成）。

MyRM 的 `todo_write` 工具在代码层面强制执行硬性护栏：

* **MAX\_TODOS = 20**：防止规划爆炸。超限时返回清晰错误信息，引导 LLM 合并或简化计划。
* **单一 in\_progress 强制执行**：任何时刻只允许一个任务处于"进行中"状态。如果 LLM 违反此约束，系统**智能纠正**（将旧的 in\_progress 项回退为 pending，保留最新的）并返回反馈 note 解释纠正详情。
* **纠正优于拒绝**：与直接拒绝不同，智能纠正让工作流持续推进，同时教会 LLM 在后续轮次自我调整。

这是代码层面的强制约束，而非提示词级别的建议——无论使用哪个 LLM 模型或服务商，行为始终一致。

### 10. 单 Agent 门控：简洁优先，按需释放

MyRM 默认提供专注的单 Agent 体验——`suggestWorkflowMode` **默认关闭**。系统静默地以单个 Agent 处理大多数任务，提供快速、可预期的响应，零编排开销。用户不会看到任何工作流建议，除非主动 opt-in。

对于需要多 Agent 主动建议的高级用户，在 **设置 → 偏好 → 高级** 中一键开启检测引擎：

* **零 LLM 开销**：检测使用纯正则规则评分（编号列表、并行关键词、多目标标记），不消耗任何 Token。
* **非阻塞**：建议以内联卡片形式出现在聊天流中，绝不中断当前响应。
* **用户完全控制**：接受（下一条消息启用工作流模式）、忽略（隐藏卡片）、或关闭该 toggle。
* **保守设计**：仅当 ComplexityRouter 将任务分类为 `reasoning` 层级，且可分解性评分达到严格阈值（≥4/7）时才触发。
* **向后兼容**：已有 `suggestWorkflowMode: true` 保存在个人设置中的用户，升级后自动保留原有偏好，无静默行为变更。

**为什么单 Agent 优先？** 正如 Sierra CEO Bret Taylor（前 Salesforce CEO）所阐述：最优秀的多 Agent 系统，对用户呈现为单 Agent。多 Agent 编排是实现细节，而非产品表面。MyRM 是唯一同时拥有完整多 Agent DAG 编排能力**且**默认抑制其曝光的平台——确保新用户获得最简洁、最快的体验，同时专家保留完全控制权。

所有竞品——包括 Claude Code、OpenClaw、Hermes、DeerFlow、CoPaw、Lobe-Chat——均无法配置工作流建议策略。它们要么始终展示（增加噪音），要么从不提供（错失机会）。
