CMDCOrchestrator.Nodes.AgentNode (cmdc_orchestrator v0.6.0)

Copy Markdown View Source

Agent 节点 — 驱动一个 CMDC Agent 执行配置好的 prompt。

对应 Agentic Design Patterns 第 7 章 (Multi-Agent Collaboration) 与 第 12 章 (Exception Handling and Recovery)。

运行模式(v0.3 新增)

通过 config[:mode] 选择:

mode语义何时 stop sessionfallback_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_turns5Agent 最大轮数
:model来自 agent_opts节点级覆盖
:mode:standalone:standalone / :pool / :subagent
:pool_key:default:pool 模式下的缓存 key
:retries0重试次数(不含首次)
:backoff_ms1000指数退避基数
:fallback_modelnil主模型失败后切换(pool 模式下忽略)
:collect_timeout60_000单次 prompt 等回执超时

Summary

Functions

execute(map, dep_results, agent_opts, runtime)

@spec execute(map(), map(), keyword(), CMDCOrchestrator.Runtime.t() | nil) ::
  {:ok, String.t()} | {:error, term()}