# YunAgent **Repository Path**: imagescience/yun-agent ## Basic Information - **Project Name**: YunAgent - **Description**: 轻量级的AI工作流编排系统,类似dify、n8n,全程使用Vibe Coding,AI工具为Qoder+CLI。涉及到的技术栈包括SpringAI、LangGraph4J、SSE、MinIO、DAG自定引擎等。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-13 - **Last Updated**: 2026-08-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YunAgent 轻量级 AI 工作流编排平台,支持可视化流程图编辑、多 LLM 厂商接入、工具节点调用,典型场景为 **AI 播客生成**(文本输入 → 大模型改写 → 语音合成 → 音频播放)。 > 类似 Dify / n8n,全程使用 Vibe Coding 开发,AI 工具为 Qoder + CLI。 ## 技术栈 | 层 | 技术 | |---|---| | 前端 | React 18 + TypeScript + Vite + React Flow + Ant Design + Zustand | | 后端 | Spring Boot 3.2.5 + Java 17 + Maven 多模块 | | 引擎 | 自研 DAG 工作流引擎(Kahn 拓扑排序) | | 通信 | SSE(Server-Sent Events)实时流式推送 | | 数据库 | H2 嵌入式(可切换 MySQL) | | LLM | OpenAI / DeepSeek / 智谱 / 通义千问(OpenAI 兼容协议) | | TTS | DashScope CosyVoice 超拟人音频合成 | | 存储 | MinIO 对象存储(可降级为本地临时文件) | ## 项目结构 ``` yun-agent/ ├── backend/ # Spring Boot 多模块 │ ├── yun-agent-common/ # 枚举、模型、DTO │ ├── yun-agent-engine/ # DAG 工作流引擎核心 │ ├── yun-agent-service/ # 业务逻辑、LLM/TTS 集成 │ └── yun-agent-web/ # REST API、SSE、启动入口 ├── frontend/ # React 前端 │ └── src/ │ ├── components/ # UI 组件(画布、节点、面板、调试) │ ├── stores/ # Zustand 状态管理 │ ├── services/ # API 客户端 + SSE 客户端 │ └── types/ # TypeScript 类型定义 └── docs/ # 项目文档 ├── summary.md # 项目总结 └── user_guide.md # 用户手册 ``` ## 快速启动 ### 环境要求 - JDK 17+ - Maven 3.8+ - Node.js 18+ / npm 8+ ### 1. 启动后端 ```bash cd backend mvn spring-boot:run -pl yun-agent-web ``` 启动成功:`http://localhost:8080` ### 2. 启动前端 ```bash cd frontend npm install # 首次需要 npm run dev ``` 启动成功:`http://localhost:5173` ## 使用说明 ### 构建工作流 1. 从左侧 **节点库** 拖拽节点到画布:`User Input` → `LLM` → `TTS Tool` → `Output` 2. 用连线将节点按顺序串联(从底部端口拖到目标节点顶部端口) 3. 点击节点,在右侧 **配置面板** 中设置参数: - LLM 节点:选择提供商、填入 API Key、选择模型、编写系统提示词 - TTS 节点:填入 API Key、选择语音角色和语速 ### 调试运行 1. 点击顶部 **保存** 按钮保存工作流 2. 点击 **调试** 按钮打开底部调试抽屉 3. 输入测试文字,点击 **运行**(或 `Ctrl+Enter`) 4. 画布节点实时显示执行状态(蓝色运行 → 绿色成功 → 红色失败) 5. 执行完成后,音频播放器出现,播放 AI 生成的播客 ### 支持的 LLM 厂商 | 厂商 | Provider 代码 | 推荐模型 | |------|-------------|---------| | OpenAI | `openai` | gpt-4o, gpt-3.5-turbo | | DeepSeek | `deepseek` | deepseek-chat | | 智谱 AI | `zhipu` | glm-4 | | 通义千问 | `dashscope` | qwen-turbo, qwen-plus | ## API 接口 | 端点 | 方法 | 说明 | |------|------|------| | `/api/workflows` | GET / POST | 工作流列表 / 创建 | | `/api/workflows/{id}` | GET / PUT / DELETE | 工作流详情 / 更新 / 删除 | | `/api/workflows/{id}/run` | POST (SSE) | 执行工作流(SSE 流式返回) | | `/api/workflows/{id}/history` | GET | 执行历史记录 | | `/api/nodes/types` | GET | 可用节点类型及配置 Schema | ## 配置说明 后端配置文件:`backend/yun-agent-web/src/main/resources/application.yml` 关键配置项(支持环境变量覆盖): ```yaml server.port: 8080 # 后端端口 minio.endpoint: ${MINIO_ENDPOINT:http://localhost:9000} minio.access-key: ${MINIO_ACCESS_KEY:minioadmin} minio.secret-key: ${MINIO_SECRET_KEY:minioadmin} cors.allowed-origins: http://localhost:5173 # CORS 前端地址 ``` 切换 MySQL:修改 `application.yml` 数据源配置并在 `yun-agent-web/pom.xml` 添加 `mysql-connector-j` 依赖。 ## 文档 - [项目总结文档](docs/summary.md) — 架构设计、技术栈、模块说明 - [用户说明手册](docs/user_guide.md) — 环境搭建、操作指南、常见问题 ## 参与贡献 1. Fork 本仓库 2. 新建 `feat_xxx` 分支 3. 提交代码 4. 新建 Pull Request ## License [MIT](LICENSE)