# Coordinator

Coordinator 负责把 planner 输出的 team graph 落成可执行节点。它不自己造模型调用，而是把每个节点包装成 DelegationEnvelope，交给 LocalAgentRunner 复用 AgentLoop。

## 大模块流程

ExecutionGraphsequence / parallel / dag
->
Scheduler找可运行节点
->
Envelope注入 parent/session/deps/skills
->
LocalAgentRunner启动子 AgentLoop run
->
NodeRunResult输出、证据、错误

## 小模块拆分

### models

定义 `AgentDescriptor`、`ExecutionNode`、`ExecutionGraph`、`DelegationEnvelope`、`NodeRunResult` 和 `TeamRunResult`。

ExecutionNode 包含 node_id、task、agent、depends_on、constraints、expected_output、pinned skills。
ExecutionGraph.validate() 检查 strategy、节点 id、依赖合法性。
DelegationEnvelope 是真正传给 LocalAgentRunner 的运行包。

### TeamGraphScheduler

按照 sequence、parallel 或 dag 策略运行节点。依赖节点完成后，其 output 会进入后续节点的 dependency_outputs。

sequence：按 nodes 顺序逐个运行。
parallel：无依赖节点可并行运行。
dag：每轮选出依赖已满足节点，运行后更新完成集。
汇总 success、node_results、run_ids、errors。

### LocalAgentRunner

本地委派执行器。它给每个 node 生成 child session id，并把 node task 作为 user input 交给 AgentLoop。子 agent 的 execution_context 和 skill_selection_context 都在这里拼装。

child session id = parent_session:team:node:随机后缀。
execution_context 写入 parent task/run、delegated worker、constraints、expected output、dependency outputs、pinned skills、ephemeral guidance。
skill_selection_context 写入 node task、phase=team_node、skill query、required capabilities、dependency outputs 和选择指令。
AgentLoop 完成后用 EvidenceBuilder 建 node evidence。

详细字段见 Prompt Atlas。

### registry / resolver

AgentRegistry 和 TargetResolver 是后续多 agent/多运行目标扩展点。当前主要路径用 generic_skill_worker 和本地 AgentLoop。

注册 agent descriptor。
解析目标 provider/model 或本地 runner。
为将来远程/专用 agent 留边界。