这是一个简单、可扩展的基础框架,用于实现允许线性、选择、循环结构的多Agent工作流。该框架使用抽象类定义核心组件(节点),允许用户通过继承这些抽象类来创建具体的工作流节点。框架管理节点间的执行顺序和数据(上下文)传递。
graph LR
A[PPT Drawing] -->|AI 分析| B[HTML Description];
B -->|AI 代码生成| C[Generated Code];
A -->|draw2xml-skill| D[XML Workflow];
style A fill:#e0f7fa,stroke:#263238,stroke-width:2px,color:#263238
style B fill:#f1f8e9,stroke:#263238,stroke-width:2px,color:#263238
style C fill:#fffde7,stroke:#263238,stroke-width:2px,color:#263238
style D fill:#e8f5e9,stroke:#263238,stroke-width:2px,color:#263238
也可直接使用 draw2xml-skill 将 PPT 流程图自动解析为 XML,一步到位。
需要准备有视觉能力的LLM API key
- 导出为PDF
- PDF转图片
- VLM解析为xml
示例图片:
提示词: 阅读并理解图片所描述的工作流,按照html设计文档示例 {迭代工作流设计示例} 或 {条件分支与子工作流设计} 和 {ai_reference} 中的设计规范,生成html设计文档。
示例代码:
<Workflow>
<StartNode id="start" name="StartNode">
<Output>
<!-- 用户输入的问题,如'成吉思汗是谁' -->
<Variable name="User_query" />
<!-- 学科,如'历史' -->
<Variable name="Subject" />
<!-- 课程标准,如'普通高中历史课程标准(2017年版2022年修订)' -->
<Variable name="Syllabus" />
</Output>
</StartNode>
<!-- 后续省略 -->此后,可以对html设计文档进行修改和迭代,直到达到满意的效果。
提示词: 根据{html设计文档},参考现有示例代码 {迭代工作流设计示例} 或 {条件分支与子工作流设计} 生成python代码。
示例代码:
# 开始节点
start_node = StartNode(
node_id="start",
node_name="Start Node",
output_variable_names=["User_query", "Subject", "Syllabus"]
)
# 后续省略
...smart_education/
├── docs/ # 文档目录
│ ├── user/ # 用户指南
│ ├── developer/ # 开发者文档
│ └── ai_reference/ # AI参考工作流
├── examples/ # 示例代码
│ ├── simple_nodes/ # 简单节点示例
│ ├── ai_reference_workflows/ # AI参考工作流示例
│ └── advanced_workflows/ # 高级工作流示例
├── src/ # 源代码
│ ├── workflow/ # 工作流核心逻辑
│ │ ├── base.py # 基础节点定义
│ │ ├── engine.py # 工作流引擎
│ │ └── nodes/ # 各种节点实现
│ └── llm/ # LLM客户端
├── README.md # 项目简介和设计文档
└── requirements.txt # 项目依赖
