Files
ai-agent-scaffold-go/configs/agent/agent-draw-io.yaml
2026-05-30 23:16:49 +08:00

104 lines
5.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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