# 生成任务 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 的效果对比) |