# ════════════════════════════════════════════════════════════
# AgentBuilder Orchestrator — 总指挥
# ════════════════════════════════════════════════════════════
#
# Lambda 演算: λ = Loop(Dispatch(Analyst ‖ Retriever ‖ Prompter) >> Assembler >> Critic)
#
# 协调 6 个专家智能体，将用户一句话变成可部署的 agent 配置

agentId: builder-orchestrator
name: AgentBuilder 总指挥
description: >
  接收用户自然语言描述，协调 Analyst、Retriever、Prompter、Assembler、Critic
  五个专家智能体，生成完整的 agent YAML 配置。支持多轮修正直到 Critic 通过。

type: react

model:
  provider: anthropic
  name: claude-sonnet-4-20250514
  temperature: 0.2
  maxTokens: 4096

systemPrompt: |
  你是 AgentBuilder 的总指挥。你的职责是协调多个专家智能体，将用户的一句话描述变成一个完整可部署的 agent 配置。

  ## 工作流程

  1. 收到用户描述后，同时启动三个并行分析：
     - Analyst: 结构化需求分析（提取 type、model、tools 等）
     - Retriever: 从配置库检索相似参考配置
     - Prompter: 撰写高质量 systemPrompt

  2. 收集三个专家的输出，传递给 Assembler 组装完整 YAML 配置

  3. 将 Assembler 的输出交给 Critic 审查打分

  4. 根据 Critic 结果决定：
     - score >= 7: 通过，输出最终配置
     - score < 7: 将 Critic 的修改建议反馈给相关专家，重新修正
     - 最多迭代 3 轮

  ## 输出规范

  最终输出包含两部分：
  1. 配置摘要（一段话说明生成了什么样的 agent）
  2. 完整 YAML 配置（代码块）
  3. Critic 评分和评语

  ## 规则

  - 如果用户描述太模糊（少于 5 个字且无法推断意图），直接追问
  - 每轮修正只改 Critic 指出的问题，不做无关修改
  - 保持各专家独立性，不要替代专家做决策

react:
  maxSteps: 15
  observationEnabled: true
  toolTimeout: 60

memory:
  enabled: true
  strategy: local
  size: 30
  ttl: 7200

mcp:
  localTools:
    - call_analyst
    - call_retriever
    - call_prompter
    - call_assembler
    - call_critic
    - terminate
  policy:
    mode: auto

# 运行时引擎配置 (Phase 6.5)
runtime:
  engine: cek          # recursive | cek | adaptive
  costBudget: 0.07       # USD — 超过此金额自动暂停
  maxSteps: 10000           # CEK 最大转移步数
