Files
ai-agent-scaffold-go/configs/agent/agent-draw-io.yaml

104 lines
5.4 KiB
YAML
Raw Normal View History

2026-05-30 23:16:49 +08:00
ai:
agent:
config:
tables:
drawIoAgent:
app-name: drawIoAgent
agent:
agent-id: "300000"
agent-name: "AI交互式绘图智能体"
agent-desc: "人 + AI + Draw.io交互式对话完成 draw.io 绘图。"
module:
ai-api:
base-url: ${OPENAI_BASE_URL}
api-key: ${OPENAI_API_KEY}
completions-path: v1/chat/completions
embeddings-path: v1/embeddings
chat-model:
model: "gpt-5.5"
tool-mcp-list:
- sse:
name: baidu-search
base-uri: ${BAIDU_SEARCH_MCP_BASE_URI}
sse-endpoint: ${BAIDU_SEARCH_MCP_SSE_ENDPOINT}
request-timeout: 500000
tool-skills-list:
- type: "resource"
path: "agent/skills"
agents:
# 1. 需求分析与检索智能体
- name: agent_analyst
description: 负责理解用户意图,调用工具检索信息,并整理出可用于绘图的需求描述。
instruction: |
你是一个专业的绘图需求分析师。请基于用户最新的输入,输出一段中文文本,描述要绘制的图表。
要求:
1. 如有需要可调用可用工具MCP补充信息但不要把工具调用结果原样贴出。
2. 即便用户描述较简略,也要根据常识合理补全,不要要求用户继续补充信息。
3. 输出必须是单段纯文本,明确包含:图表类型(流程图 / 时序图 / 类图 等)、关键节点、节点之间的关系或调用顺序、必要的布局提示。
4. 严禁输出 JSON、Markdown、代码块或 XML只输出自然语言描述。
output-key: analysis_result
# 2. 绘图执行智能体
- name: agent_drawer
description: 根据分析结果生成 Draw.io 的 mxfile XML 数据。
instruction: |
你是一个 Draw.io 绘图专家。下面是上一步整理好的绘图需求:
---
{analysis_result}
---
请只输出一份合法的 draw.io XML要求
1. 必须以 `<mxfile` 开头,以 `</mxfile>` 结尾,包含 `<diagram>` 与 `<mxGraphModel>`。
2. 节点mxCell vertex="1")有合适的 `geometry` 坐标和大小,避免重叠。
3. 连线mxCell edge="1")使用 `source` 与 `target` 引用节点 id逻辑顺序清晰避免明显交叉。
4. 严禁输出任何 JSON、Markdown、代码块标记```),不要写解释文字,输出从 `<mxfile` 第一个字符开始。
output-key: draft_diagram
# 3. 检查与优化智能体
- name: agent_reviewer
description: 检查绘图结果,修正语法问题,输出最终的裸 XML。
instruction: |
你是一个 draw.io XML 质量检查员。下面是上一步生成的 XML
---
{draft_diagram}
---
请按以下规则输出最终结果:
1. 检查 XML 是否合法标签闭合、属性正确、id 与 source/target 一致),有问题就直接修正。
2. 如发现节点明显重叠或连线交叉,可微调 geometry 让布局更整洁,但不要新增/删除核心节点。
3. 最终输出必须只有这份合法的 draw.io XML必须以 `<mxfile` 开头,以 `</mxfile>` 结尾。
4. 严禁输出任何 JSON、Markdown、代码块标记或解释文字。如果发现输入完全不像 XML则按需求自行重写一份合法的最简 mxfile XML 后输出。
output-key: final_result
agent-workflows:
# 案例;定义一个循环工作流(示例),用于反复优化绘图(需要在 instruction 中支持反馈机制才能生效)
- type: loop
name: loop_refinement
description: 循环优化绘图结果
max-iterations: 3
sub-agents:
- agent_drawer
- agent_reviewer
# 案例;定义一个并行工作流(示例),可以并行生成多个方案(需要后续有 Agent 进行选择)
- type: parallel
name: parallel_generation
description: 并行生成多个绘图方案
sub-agents:
- agent_drawer
- agent_drawer
# 对外;定义一个串行工作流,按顺序执行分析、绘图、检查
- type: sequential
name: sequential_draw_process
description: 标准绘图流程:分析 -> 绘图 -> 检查
sub-agents:
- agent_analyst
- agent_drawer
- agent_reviewer
runner:
# 指定入口为串行工作流,这是最稳健的配置
agent-name: sequential_draw_process
plugin-name-list:
- myTestPlugin
- myLogPlugin