Agent 节点 — 驱动一个 CMDC Agent 执行配置好的 prompt。
对应 Agentic Design Patterns 第 7 章 (Multi-Agent Collaboration) 与 第 12 章 (Exception Handling and Recovery)。
运行模式(v0.3 新增)
通过 config[:mode] 选择:
| mode | 语义 | 何时 stop session | fallback_model |
|---|---|---|---|
:standalone (默认) | 每次节点执行 create + stop 一次性 session | 节点结束 | ✅ |
:subagent | 启动独立 session 并交给 runtime 登记 | DAG 整体结束 | ✅ |
:pool | 按 :pool_key 复用 session,累积对话历史 | DAG 整体结束 | ⚠ 忽略 |
:pool / :subagent 模式必须在 Executor.run/2 里执行,Executor 会
自动注入共享的 CMDCOrchestrator.Runtime;在 runtime 缺失时自动降级到
:standalone,但会打出 warning。
节点 config 字段
| 字段 | 默认 | 说明 |
|---|---|---|
:prompt | "" | 节点主 prompt |
:system_prompt | 来自 agent_opts | 节点级覆盖 |
:max_turns | 5 | Agent 最大轮数 |
:model | 来自 agent_opts | 节点级覆盖 |
:mode | :standalone | :standalone / :pool / :subagent |
:pool_key | :default | :pool 模式下的缓存 key |
:retries | 0 | 重试次数(不含首次) |
:backoff_ms | 1000 | 指数退避基数 |
:fallback_model | nil | 主模型失败后切换(pool 模式下忽略) |
:collect_timeout | 60_000 | 单次 prompt 等回执超时 |