generation-agent-architecture.md 3.0 KB

生成任务 Agent 架构

设计原则

按 context 内聚划分 agent:把解决特定子任务必须的信息交给一个 agent,每个 agent 的 context 保持小且聚焦。

角色

Business Agent(决策循环)

薄编排器。驱动 goal → evaluate → decide → dispatch 循环。

  • context:目标需求 + 当前结果 + 当前评估(不累积历史)
  • 做:提出目标、评估结果(通过 evaluate 工具)、决定迭代或接受、派发任务
  • 调度:Librarian(问策)、Craftsman(执行)、Researcher(调研)

Librarian(内部知识顾问)

基于 KnowHub 已有知识给出方案建议。被动响应,不主动执行。

  • context:KnowHub 知识(需求、能力、工具、历史经验)
  • 做:接收当前状态 + 评估反馈 → 建议下一步行动
  • 不做:不执行工具、不做外部调研、不输出固定步骤序列
  • 回写:方案选择经验("这类需求用 X 方案效果最好")

Researcher(外部知识获取)

当已有知识不足时,去外部获取新信息。

  • context:待调研的具体问题 + 外部信息源(网页、目录、试跑)
  • 做:搜索、对比、试验 → 返回调研结果 → 存入 KnowHub
  • 触发:Business Agent 根据 Librarian 的"知识不足"反馈决定派发

Craftsman(单步执行)

接收一个具体的执行任务(非整个方案),完成并返回结果。

  • context:当前步骤的需求 + 候选工具详情(由 Librarian 提供)
  • 做:选具体工具/模型、配参、调用工具库执行、返回结果
  • 回写:参数和工具组合经验("这组参数出图最稳")
  • provider 选择在此层处理,不暴露给业务

evaluate 工具(质量评估)

不是 agent,是 Business Agent 调用的工具。隔离 context 保证评估干净。

  • 输入:原始需求 + 输出结果 + 质量标准
  • 输出:评分 + 反馈(如"姿态准确但风格偏写实")
  • 内部可调用多模态 LLM 看图评估

协作流程

Business: "动漫风姿态控制图"
  → Librarian: "推荐 ControlNet + 动漫模型,但缺模型对比数据"
  → Business 决定调研
  → Researcher: 对比动漫模型 → 结果存入 KnowHub
  → Librarian(有知识了): "推荐 AnimagineXL,先提取姿态再合成"
  → Craftsman(提取姿态) → 姿态图
  → Craftsman(合成生图) → 结果图
  → evaluate(需求, 结果图) → "7/10,风格偏写实"
  → Librarian: "换 Counterfeit 模型或加风格 LoRA"
  → Craftsman(重新合成) → 新结果
  → evaluate → "9/10,符合要求"
  → Business: 接受

知识回流

每个角色从自己的视角向 KnowHub 贡献知识:

角色 回写的知识类型
Librarian 方案策略经验(哪种方案适合哪类需求)
Craftsman 工具参数经验(什么配置效果最好)
Researcher 调研发现(工具对比、新工具信息)
evaluate 质量评估记录(方案 A vs B 的效果对比)