2026-05-08 00:44:27 +08:00
|
|
|
|
# 天工智能体平台 - 核心文档汇总
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
|
|
|
|
|
|
|
### 项目背景
|
2026-05-08 00:44:27 +08:00
|
|
|
|
天工智能体平台旨在让非技术用户通过可视化拖拽的方式,快速构建和部署AI智能体,降低AI应用开发门槛,提高开发效率。
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
### 核心价值
|
2026-05-08 00:44:27 +08:00
|
|
|
|
- **零代码/可视化**:通过可视化界面配置智能体,无需编写代码
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- **快速部署**:一键部署到多种环境(云服务、本地、边缘设备)
|
|
|
|
|
|
- **灵活扩展**:支持自定义组件和插件机制
|
|
|
|
|
|
- **多模型支持**:集成主流AI模型(OpenAI、Claude、DeepSeek等)
|
|
|
|
|
|
- **工作流编排**:支持复杂的工作流设计和执行
|
|
|
|
|
|
- **Agent协作**:支持多Agent协作和工具链管理
|
2026-05-01 19:32:59 +08:00
|
|
|
|
- **自主 AI Agent 运行时**:支持 ReAct 自主循环的 Agent Runtime,可独立对话或嵌入工作流
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
### 目标用户
|
|
|
|
|
|
- 产品经理和业务人员
|
|
|
|
|
|
- 初级开发者
|
|
|
|
|
|
- 企业数字化转型团队
|
|
|
|
|
|
- AI应用开发者
|
|
|
|
|
|
|
|
|
|
|
|
## 系统架构设计
|
|
|
|
|
|
|
|
|
|
|
|
### 整体架构
|
|
|
|
|
|
采用前后端分离的微服务架构:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────┐
|
|
|
|
|
|
│ 前端层 (Frontend) │
|
|
|
|
|
|
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
|
|
|
|
│ │ 可视化编辑器 │ │ 智能体管理 │ │ 监控面板 │ │
|
|
|
|
|
|
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
|
|
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
|
|
│
|
|
|
|
|
|
│ HTTP/WebSocket
|
|
|
|
|
|
▼
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────┐
|
|
|
|
|
|
│ API网关层 (Gateway) │
|
|
|
|
|
|
│ 认证、限流、路由、负载均衡 │
|
|
|
|
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
|
|
│
|
|
|
|
|
|
▼
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────┐
|
|
|
|
|
|
│ 业务服务层 (Services) │
|
|
|
|
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│
|
|
|
|
|
|
│ │智能体引擎 │ │工作流引擎 │ │模型管理 │ │数据管理 ││
|
|
|
|
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘│
|
|
|
|
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│
|
|
|
|
|
|
│ │任务调度 │ │日志监控 │ │用户管理 │ │权限管理 ││
|
|
|
|
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘│
|
|
|
|
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
|
|
│
|
|
|
|
|
|
▼
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────┐
|
|
|
|
|
|
│ 数据存储层 (Storage) │
|
|
|
|
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│
|
|
|
|
|
|
│ │ MySQL │ │ │ │ Redis │ │ ││
|
|
|
|
|
|
│ │(元数据) │ │ │ │(缓存) │ │ ││
|
|
|
|
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘│
|
|
|
|
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
|
|
│
|
|
|
|
|
|
▼
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────┐
|
|
|
|
|
|
│ 外部服务层 (External) │
|
|
|
|
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│
|
|
|
|
|
|
│ │ OpenAI │ │ DeepSeek │ │ 本地模型 │ │ 其他API ││
|
|
|
|
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘│
|
|
|
|
|
|
└─────────────────────────────────────────────────────────┘
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 技术栈选型
|
|
|
|
|
|
|
|
|
|
|
|
#### 前端技术栈
|
|
|
|
|
|
- **框架**: Vue 3 + TypeScript + Vite
|
|
|
|
|
|
- **状态管理**: Pinia
|
|
|
|
|
|
- **UI组件库**: Element Plus
|
|
|
|
|
|
- **工作流可视化**: Vue Flow
|
|
|
|
|
|
- **HTTP客户端**: Axios
|
|
|
|
|
|
- **WebSocket**: 原生WebSocket API
|
|
|
|
|
|
|
|
|
|
|
|
#### 后端技术栈
|
|
|
|
|
|
- **框架**: Python FastAPI
|
|
|
|
|
|
- **数据库**: MySQL(腾讯云数据库)
|
|
|
|
|
|
- **缓存/消息队列**: Redis
|
|
|
|
|
|
- **异步任务**: Celery
|
|
|
|
|
|
- **AI框架**: LangChain
|
2026-05-01 19:32:59 +08:00
|
|
|
|
- **Agent Runtime**: 自研 ReAct 循环(零重构,寄生式复用现有服务)
|
|
|
|
|
|
- **Agent Orchestrator**: 多 Agent 编排引擎(路由/顺序/辩论三种模式)
|
2026-05-01 22:30:46 +08:00
|
|
|
|
- **Agent 监控**: LLM 调用埋点 + 专属 Dashboard(Token/工具/Agent 用量统计)
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- **数据库ORM**: SQLAlchemy
|
|
|
|
|
|
- **迁移工具**: Alembic
|
|
|
|
|
|
- **认证**: JWT
|
|
|
|
|
|
|
|
|
|
|
|
## 核心功能模块
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 用户认证系统
|
|
|
|
|
|
- 用户注册、登录
|
|
|
|
|
|
- JWT Token认证
|
|
|
|
|
|
- 密码加密(bcrypt)
|
|
|
|
|
|
- 获取当前用户信息
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 工作流管理
|
|
|
|
|
|
- 工作流CRUD(创建、读取、更新、删除)
|
|
|
|
|
|
- 可视化编辑器(拖拽节点、连线)
|
|
|
|
|
|
- 节点配置面板
|
|
|
|
|
|
- 工作流版本管理
|
|
|
|
|
|
- 工作流导入导出
|
|
|
|
|
|
- 工作流模板市场
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 工作流执行引擎
|
|
|
|
|
|
- DAG构建和拓扑排序
|
|
|
|
|
|
- 节点执行器(支持多种节点类型)
|
|
|
|
|
|
- 数据流管理(节点间数据传递)
|
|
|
|
|
|
- Celery异步任务集成
|
|
|
|
|
|
- 执行状态管理
|
|
|
|
|
|
- 错误处理和重试机制
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 节点类型支持
|
|
|
|
|
|
- **基础节点**: 开始、输入、输出、结束
|
|
|
|
|
|
- **AI节点**: LLM(支持OpenAI、DeepSeek等)
|
|
|
|
|
|
- **逻辑节点**: 条件、循环
|
|
|
|
|
|
- **数据节点**: 转换、数据库查询、文件操作
|
|
|
|
|
|
- **集成节点**: HTTP请求、Webhook、邮件、消息队列
|
|
|
|
|
|
- **工具节点**: 定时任务、Agent节点
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 内置工具调用
|
2026-04-30 00:57:13 +08:00
|
|
|
|
平台提供10个内置工具,可在LLM节点中启用:
|
2026-04-08 11:44:24 +08:00
|
|
|
|
1. 🌐 **http_request** - HTTP请求工具
|
|
|
|
|
|
2. 📖 **file_read** - 文件读取工具
|
|
|
|
|
|
3. ✍️ **file_write** - 文件写入工具
|
|
|
|
|
|
4. 📊 **text_analyze** - 文本分析工具
|
|
|
|
|
|
5. 🕐 **datetime** - 日期时间工具
|
|
|
|
|
|
6. 🔢 **math_calculate** - 数学计算工具
|
|
|
|
|
|
7. 💻 **system_info** - 系统信息工具
|
|
|
|
|
|
8. 📦 **json_process** - JSON处理工具
|
2026-04-30 00:57:13 +08:00
|
|
|
|
9. 🗄️ **database_query** - 数据库查询工具(只读查询场景)
|
|
|
|
|
|
10. 📱 **adb_log** - Android/设备日志工具
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
### 6. 执行管理
|
|
|
|
|
|
- 创建执行任务
|
|
|
|
|
|
- 获取执行记录列表
|
|
|
|
|
|
- 获取执行详情
|
|
|
|
|
|
- 执行状态实时推送(WebSocket)
|
|
|
|
|
|
- 执行结果可视化
|
|
|
|
|
|
- 执行日志和监控
|
|
|
|
|
|
|
|
|
|
|
|
### 7. 数据源管理
|
|
|
|
|
|
- 数据源模型和CRUD API
|
|
|
|
|
|
- 数据源连接测试
|
|
|
|
|
|
- 数据查询功能
|
|
|
|
|
|
|
|
|
|
|
|
### 8. 模型配置管理
|
2026-04-30 00:57:13 +08:00
|
|
|
|
- 模型配置CRUD API(API Key 等在服务端加密存储;工作流 LLM 节点可绑定 `model_config_id` 由可信所有者运行时解密注入)
|
|
|
|
|
|
- 多模型支持(OpenAI、Anthropic 兼容路径、DeepSeek 等)
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- 模型切换和配置
|
|
|
|
|
|
|
2026-04-30 00:57:13 +08:00
|
|
|
|
**DeepSeek API(OpenAI 兼容格式)**
|
|
|
|
|
|
与 [DeepSeek API 文档](https://api-docs.deepseek.com/) 对齐的常用参数如下(密钥需在控制台申请,勿写入文档或仓库):
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 说明 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| **base_url** | `https://api.deepseek.com`(OpenAI 兼容;Anthropic 兼容格式为 `https://api.deepseek.com/anthropic`) |
|
|
|
|
|
|
| **主推模型** | `deepseek-v4-flash`、`deepseek-v4-pro` |
|
|
|
|
|
|
| **兼容旧名(计划弃用)** | `deepseek-chat`、`deepseek-reasoner` 计划于 **2026/07/24** 弃用;二者分别对应 `deepseek-v4-flash` 的非思考与思考模式 |
|
|
|
|
|
|
|
|
|
|
|
|
本平台侧:**新建 LLM 节点、节点模板及后端未显式指定模型时的 DeepSeek 默认值**为 **`deepseek-v4-flash`**;工作流编辑器与「模型配置」页下拉仍可选择兼容旧模型名并标注弃用时间。
|
|
|
|
|
|
|
2026-05-01 19:32:59 +08:00
|
|
|
|
### Agent管理
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- Agent CRUD API
|
|
|
|
|
|
- Agent管理页面
|
|
|
|
|
|
- Agent协作功能
|
2026-04-30 00:57:13 +08:00
|
|
|
|
- 批量场景Agent脚本(教育/企业/政务/媒体)
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
2026-05-01 19:32:59 +08:00
|
|
|
|
### 10. Agent Runtime(自主 AI Agent)
|
|
|
|
|
|
- **ReAct 自主循环**:LLM 思考→工具调用→观察结果→再思考,支持最多 N 步迭代
|
|
|
|
|
|
- **分层记忆**:短期(会话上下文)+ 长期(MySQL 持久化),LLM 自动压缩总结
|
|
|
|
|
|
- **执行追踪**:每步迭代记录 think/tool_call/tool_result/final,返回 steps 供前端展开
|
|
|
|
|
|
- **工具管理**:白名单/黑名单过滤,包装已有 ToolRegistry
|
|
|
|
|
|
- **工作流桥接**:Agent 节点可嵌入工作流 DAG,复用工作流引擎
|
|
|
|
|
|
- **独立对话**:通过专用 API 直接与 Agent 对话,不依赖工作流
|
|
|
|
|
|
- **LLM 调用埋点**:每次 LLM 调用自动记录模型、tokens、耗时到 AgentLLMLog 表
|
|
|
|
|
|
- **Agent 监控**:专属 Dashboard 展示 Agent 用量排行、LLM 调用记录、Token 统计、工具调用频次
|
|
|
|
|
|
- **多 Agent 编排**:三种协作模式:
|
|
|
|
|
|
- **route** — Router Agent 分析问题,分发到最匹配的 Specialist Agent
|
|
|
|
|
|
- **sequential** — Agent 流水线执行,前者输出作为后者输入
|
|
|
|
|
|
- **debate** — 多个 Agent 独立回答,Aggregator 汇总为最终答案
|
2026-05-02 17:42:18 +08:00
|
|
|
|
- **自主学习**:Agent 从历史执行中自动优化工具选择策略,基于 AgentLearningPattern 模型记录和累计工具使用模式,执行前注入历史模式到 system prompt
|
|
|
|
|
|
|
|
|
|
|
|
### 11. Agent 定时任务系统
|
|
|
|
|
|
- **cron 调度**:支持标准 cron 表达式,按周期自动触发 Agent 执行
|
|
|
|
|
|
- **Celery Beat 集成**:每分钟检查到期任务,到期自动触发
|
|
|
|
|
|
- **执行管理**:支持手动触发、暂停/恢复、执行状态跟踪
|
|
|
|
|
|
- **飞书推送**:定时任务执行结果自动推送到飞书(Webhook + 应用消息)
|
|
|
|
|
|
|
|
|
|
|
|
### 12. 飞书集成和通知系统
|
|
|
|
|
|
- **通知系统**:统一的通知管理(notifications 表、通知服务、API)
|
|
|
|
|
|
- **飞书定时任务推送**:定时任务执行结果自动推送飞书
|
|
|
|
|
|
- **飞书应用消息**:通过飞书应用 API 发送消息通知
|
|
|
|
|
|
- **飞书账号绑定**:用户可绑定飞书账号,接收个性化通知
|
|
|
|
|
|
- **橙子飞书机器人**:独立 WebSocket 连接的飞书机器人,固定路由到橙子助手 Agent
|
|
|
|
|
|
- **飞书事件监听**:WebSocket 长连接监听飞书 IM 事件
|
2026-05-01 19:32:59 +08:00
|
|
|
|
|
2026-04-08 11:44:24 +08:00
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
aiagent/
|
|
|
|
|
|
├── frontend/ # 前端项目(Vue 3 + TypeScript)
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── assets/ # 静态资源
|
|
|
|
|
|
│ │ ├── components/ # 组件
|
|
|
|
|
|
│ │ ├── router/ # 路由
|
|
|
|
|
|
│ │ ├── stores/ # 状态管理(Pinia)
|
|
|
|
|
|
│ │ ├── views/ # 页面
|
|
|
|
|
|
│ │ └── App.vue # 根组件
|
|
|
|
|
|
│ ├── package.json # 依赖配置
|
|
|
|
|
|
│ ├── vite.config.ts # Vite配置
|
|
|
|
|
|
│ └── Dockerfile.dev # 开发环境Dockerfile
|
|
|
|
|
|
├── backend/ # 后端项目(Python FastAPI)
|
|
|
|
|
|
│ ├── app/
|
2026-05-01 19:32:59 +08:00
|
|
|
|
│ │ ├── agent_runtime/ # Agent Runtime(新增,自主 ReAct 循环)
|
|
|
|
|
|
│ │ │ ├── __init__.py # 包导出
|
|
|
|
|
|
│ │ │ ├── schemas.py # Agent 配置 Schema + AgentStep 执行追踪
|
|
|
|
|
|
│ │ │ ├── context.py # 会话上下文(消息历史、迭代追踪)
|
|
|
|
|
|
│ │ │ ├── memory.py # 分层记忆管理器 + LLM 自动压缩总结
|
|
|
|
|
|
│ │ │ ├── tool_manager.py# 工具管理器(包装 ToolRegistry)
|
2026-05-02 17:42:18 +08:00
|
|
|
|
│ │ │ ├── core.py # AgentRuntime 主循环(ReAct 核心)+ 自主学习集成
|
|
|
|
|
|
│ │ │ ├── orchestrator.py# 多 Agent 编排引擎(route/sequential/debate/pipeline)
|
2026-05-01 19:32:59 +08:00
|
|
|
|
│ │ │ └── workflow_integration.py # 工作流桥接
|
2026-04-08 11:44:24 +08:00
|
|
|
|
│ │ ├── api/ # API路由
|
2026-05-02 17:42:18 +08:00
|
|
|
|
│ │ │ ├── agent_chat.py # Agent 聊天 + 多 Agent 编排 + LLM 调用日志 + SSE 流式
|
|
|
|
|
|
│ │ │ ├── agent_monitoring.py # Agent 监控 API 5 个端点
|
|
|
|
|
|
│ │ │ ├── agent_schedules.py # Agent 定时任务 CRUD API + 手动触发
|
|
|
|
|
|
│ │ │ ├── feishu_bind.py # 飞书账号绑定/解绑 API
|
|
|
|
|
|
│ │ │ └── notifications.py # 通知系统 API
|
2026-04-08 11:44:24 +08:00
|
|
|
|
│ │ ├── core/ # 核心模块
|
|
|
|
|
|
│ │ ├── models/ # 数据库模型
|
2026-05-02 17:42:18 +08:00
|
|
|
|
│ │ │ ├── agent_llm_log.py # Agent LLM 调用日志模型
|
|
|
|
|
|
│ │ │ ├── agent_learning_pattern.py # Agent 学习模式模型(自主学习)
|
|
|
|
|
|
│ │ │ ├── agent_schedule.py # Agent 定时任务调度模型
|
|
|
|
|
|
│ │ │ ├── notification.py # 通知模型
|
|
|
|
|
|
│ │ │ └── agent_vector_memory.py # Agent 向量记忆表模型
|
2026-04-08 11:44:24 +08:00
|
|
|
|
│ │ ├── schemas/ # Pydantic模式
|
|
|
|
|
|
│ │ ├── services/ # 业务逻辑
|
2026-05-02 17:42:18 +08:00
|
|
|
|
│ │ │ ├── agent_monitoring_service.py # Agent 监控服务
|
|
|
|
|
|
│ │ │ ├── agent_learning_service.py # 自主学习服务(工具选择优化)
|
|
|
|
|
|
│ │ │ ├── agent_schedule_service.py # 定时任务调度服务
|
|
|
|
|
|
│ │ │ ├── notification_service.py # 通知服务
|
|
|
|
|
|
│ │ │ ├── feishu_app_service.py # 飞书应用消息发送
|
|
|
|
|
|
│ │ │ ├── feishu_notifier.py # 飞书通知器
|
|
|
|
|
|
│ │ │ ├── feishu_ws_handler.py # 飞书 WebSocket 事件处理
|
|
|
|
|
|
│ │ │ ├── orange_app_service.py # 橙子飞书机器人服务
|
|
|
|
|
|
│ │ │ ├── orange_ws_handler.py # 橙子机器人 WS 处理
|
|
|
|
|
|
│ │ │ ├── knowledge_service.py # 知识库 RAG 服务
|
|
|
|
|
|
│ │ │ ├── embedding_service.py # Embedding 生成服务
|
|
|
|
|
|
│ │ │ ├── document_parser.py # 文档解析器
|
|
|
|
|
|
│ │ │ └── text_chunker.py # 文本分块器
|
2026-04-08 11:44:24 +08:00
|
|
|
|
│ │ └── main.py # 应用入口
|
|
|
|
|
|
│ ├── alembic/ # 数据库迁移
|
|
|
|
|
|
│ ├── tests/ # 测试
|
|
|
|
|
|
│ ├── requirements.txt # Python依赖
|
|
|
|
|
|
│ ├── Dockerfile.dev # 开发环境Dockerfile
|
|
|
|
|
|
│ └── alembic.ini # Alembic配置
|
|
|
|
|
|
├── docker-compose.dev.yml # 开发环境Docker Compose配置
|
|
|
|
|
|
├── README.md # 项目说明
|
|
|
|
|
|
├── QUICKSTART.md # 快速启动指南
|
|
|
|
|
|
├── 使用指南.md # 用户使用指南
|
|
|
|
|
|
├── 方案-优化版.md # 完整技术方案
|
|
|
|
|
|
├── 开发进度.md # 开发进度跟踪
|
|
|
|
|
|
├── 内置工具列表.md # 内置工具文档
|
|
|
|
|
|
└── 项目核心文档汇总.md # 本文档
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 部署指南
|
|
|
|
|
|
|
|
|
|
|
|
### 前置要求
|
|
|
|
|
|
- Node.js 18+ 和 pnpm
|
|
|
|
|
|
- Python 3.11+
|
|
|
|
|
|
- Docker 和 Docker Compose
|
|
|
|
|
|
- MySQL(使用腾讯云数据库)
|
|
|
|
|
|
- Redis 7+(或使用Docker)
|
|
|
|
|
|
|
|
|
|
|
|
### 使用 Docker Compose 启动(推荐)
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 启动所有服务
|
|
|
|
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
|
|
|
|
|
|
|
|
|
|
# 查看服务状态
|
|
|
|
|
|
docker-compose ps
|
|
|
|
|
|
|
|
|
|
|
|
# 查看日志
|
|
|
|
|
|
docker-compose logs -f
|
|
|
|
|
|
|
|
|
|
|
|
# 停止服务
|
|
|
|
|
|
docker-compose down
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 本地开发部署
|
|
|
|
|
|
|
|
|
|
|
|
#### 后端服务
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
|
|
|
|
|
|
# 创建虚拟环境
|
|
|
|
|
|
python -m venv venv
|
|
|
|
|
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
|
|
|
|
|
|
|
|
|
|
# 安装依赖
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
|
|
|
|
|
|
# 配置环境变量
|
|
|
|
|
|
cp env.example .env
|
|
|
|
|
|
# 编辑 .env 文件(数据库已配置为腾讯云MySQL)
|
|
|
|
|
|
|
|
|
|
|
|
# 运行数据库迁移
|
|
|
|
|
|
alembic upgrade head
|
|
|
|
|
|
|
|
|
|
|
|
# 启动开发服务器
|
|
|
|
|
|
uvicorn app.main:app --reload
|
|
|
|
|
|
|
|
|
|
|
|
# 启动 Celery Worker(新终端)
|
|
|
|
|
|
celery -A app.core.celery_app worker --loglevel=info
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 前端服务
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
|
|
|
|
|
|
# 安装依赖
|
|
|
|
|
|
pnpm install
|
|
|
|
|
|
|
|
|
|
|
|
# 启动开发服务器
|
|
|
|
|
|
pnpm dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 服务访问地址
|
2026-04-30 00:57:13 +08:00
|
|
|
|
- **前端(本地开发推荐)**: http://localhost:3001
|
|
|
|
|
|
- **前端(Docker方案)**: http://localhost:8038
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- **后端API**: http://localhost:8037
|
|
|
|
|
|
- **API文档**: http://localhost:8037/docs
|
|
|
|
|
|
- **Redis**: localhost:6379
|
|
|
|
|
|
|
|
|
|
|
|
## API 文档摘要
|
|
|
|
|
|
|
|
|
|
|
|
### 认证API
|
|
|
|
|
|
- `POST /api/v1/auth/register` - 用户注册
|
|
|
|
|
|
- `POST /api/v1/auth/login` - 用户登录(获取JWT Token)
|
|
|
|
|
|
- `GET /api/v1/auth/me` - 获取当前用户信息
|
|
|
|
|
|
|
|
|
|
|
|
### 工作流API
|
|
|
|
|
|
- `GET /api/v1/workflows` - 获取工作流列表
|
|
|
|
|
|
- `POST /api/v1/workflows` - 创建工作流
|
|
|
|
|
|
- `GET /api/v1/workflows/{id}` - 获取工作流详情
|
|
|
|
|
|
- `PUT /api/v1/workflows/{id}` - 更新工作流
|
|
|
|
|
|
- `DELETE /api/v1/workflows/{id}` - 删除工作流
|
|
|
|
|
|
- `POST /api/v1/workflows/{id}/execute` - 执行工作流
|
|
|
|
|
|
|
|
|
|
|
|
### 执行管理API
|
|
|
|
|
|
- `GET /api/v1/executions` - 获取执行记录列表
|
|
|
|
|
|
- `GET /api/v1/executions/{id}` - 获取执行详情
|
|
|
|
|
|
- `GET /api/v1/executions/{id}/status` - 获取执行状态
|
|
|
|
|
|
|
|
|
|
|
|
### 数据源API
|
|
|
|
|
|
- `GET /api/v1/data-sources` - 获取数据源列表
|
|
|
|
|
|
- `POST /api/v1/data-sources` - 创建数据源
|
|
|
|
|
|
- `POST /api/v1/data-sources/{id}/test` - 测试数据源连接
|
|
|
|
|
|
- `POST /api/v1/data-sources/{id}/query` - 执行数据查询
|
|
|
|
|
|
|
2026-05-01 22:30:46 +08:00
|
|
|
|
### Agent 与编排 API(新增)
|
2026-05-01 19:32:59 +08:00
|
|
|
|
- `POST /api/v1/agent-chat/bare` - 默认 Agent 直接对话(无需预配置)
|
|
|
|
|
|
- `POST /api/v1/agent-chat/{agent_id}` - 与指定 Agent 对话(复用工作流配置)
|
|
|
|
|
|
- `POST /api/v1/agent-chat/orchestrate` - 多 Agent 编排(route/sequential/debate 三种模式)
|
2026-05-01 22:30:46 +08:00
|
|
|
|
- 请求体: `{ message, mode, agents[] }` 每个 Agent 可独立配置 system_prompt/model/temperature/tools
|
|
|
|
|
|
- 返回: `{ final_answer, steps[], agent_results[] }`
|
|
|
|
|
|
|
|
|
|
|
|
### Agent 监控 API(新增)
|
|
|
|
|
|
- `GET /api/v1/agent-monitoring/overview` - Agent 概览统计(Agent 数、对话/LLM/工具调用次数、Token 用量)
|
|
|
|
|
|
- `GET /api/v1/agent-monitoring/llm-calls?days=7&limit=50` - LLM 调用记录列表(模型、tokens、耗时、状态)
|
|
|
|
|
|
- `GET /api/v1/agent-monitoring/agents-stats?days=7` - 各 Agent 用量排行(调用次数、Token、延迟)
|
|
|
|
|
|
- `GET /api/v1/agent-monitoring/tool-usage?days=7` - 工具调用频次统计
|
|
|
|
|
|
- `GET /api/v1/agent-monitoring/daily-trend?days=7` - 每日 LLM 调用趋势
|
2026-05-01 19:32:59 +08:00
|
|
|
|
|
2026-04-08 11:44:24 +08:00
|
|
|
|
### WebSocket API
|
|
|
|
|
|
- `ws://localhost:8037/ws/execution/{execution_id}` - 执行状态实时推送
|
|
|
|
|
|
|
|
|
|
|
|
完整API文档请访问:http://localhost:8037/docs
|
|
|
|
|
|
|
|
|
|
|
|
## 用户指南摘要
|
|
|
|
|
|
|
|
|
|
|
|
### 快速开始使用
|
|
|
|
|
|
1. **登录系统**:访问 http://localhost:8038,注册并登录
|
|
|
|
|
|
2. **创建工作流**:点击"创建工作流"按钮进入可视化编辑器
|
|
|
|
|
|
3. **拖拽节点**:从左侧工具箱拖拽节点到画布
|
|
|
|
|
|
4. **连接节点**:点击节点的连接点并拖拽到目标节点
|
|
|
|
|
|
5. **配置节点**:点击节点,在右侧配置面板设置参数
|
|
|
|
|
|
6. **保存工作流**:点击工具栏的"保存"按钮
|
|
|
|
|
|
7. **执行工作流**:点击工具栏的"运行"按钮
|
|
|
|
|
|
|
|
|
|
|
|
### 节点类型说明
|
|
|
|
|
|
- **开始节点**:工作流起始节点
|
|
|
|
|
|
- **输入节点**:数据输入节点,可配置输入参数
|
2026-04-30 00:57:13 +08:00
|
|
|
|
- **LLM节点**:AI 模型处理节点,支持 OpenAI、DeepSeek 等;DeepSeek 推荐选用 **`deepseek-v4-flash`** 或 **`deepseek-v4-pro`**(旧名 `deepseek-chat` / `deepseek-reasoner` 仍可兼容使用,计划 **2026/07/24** 弃用)
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- **条件节点**:条件判断节点,支持表达式配置
|
|
|
|
|
|
- **转换节点**:数据转换节点,支持JSONPath、模板等
|
|
|
|
|
|
- **输出节点**:数据输出节点,可配置输出格式
|
|
|
|
|
|
- **结束节点**:工作流结束节点
|
|
|
|
|
|
|
|
|
|
|
|
### 工具调用功能
|
|
|
|
|
|
在LLM节点中启用工具调用,AI可以调用内置工具处理任务:
|
|
|
|
|
|
1. 选择LLM节点,打开"工具"标签页
|
|
|
|
|
|
2. 启用"启用工具调用"开关
|
|
|
|
|
|
3. 选择需要的工具(可多选)
|
|
|
|
|
|
4. 保存配置
|
|
|
|
|
|
|
|
|
|
|
|
## 开发指南
|
|
|
|
|
|
|
|
|
|
|
|
### 开发规范
|
|
|
|
|
|
- **前端代码规范**:ESLint + Prettier
|
|
|
|
|
|
- **后端代码规范**:PEP 8 + Black
|
|
|
|
|
|
- **Git提交规范**:Conventional Commits
|
|
|
|
|
|
- **代码审查**:必须通过Code Review
|
|
|
|
|
|
|
|
|
|
|
|
### 测试指南
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 前端测试
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
pnpm test
|
|
|
|
|
|
|
|
|
|
|
|
# 后端测试
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
pytest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 数据库迁移
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
|
|
|
|
|
|
# 创建新的迁移
|
|
|
|
|
|
alembic revision --autogenerate -m "描述"
|
|
|
|
|
|
|
|
|
|
|
|
# 应用迁移
|
|
|
|
|
|
alembic upgrade head
|
|
|
|
|
|
|
|
|
|
|
|
# 回退迁移
|
|
|
|
|
|
alembic downgrade -1
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 添加新节点类型
|
2026-04-30 00:57:13 +08:00
|
|
|
|
1. 后端:在 `backend/app/services/workflow_engine.py` 的 `execute_node` 中增加节点类型分支;如需校验,可扩展 `workflow_validator.py`
|
|
|
|
|
|
2. 前端:在 `frontend/src/components/nodes/`(或工作流编辑器关联组件)中增加节点展示与配置
|
|
|
|
|
|
3. 前端:在 `frontend/src/stores/workflowStore.ts` 等处注册节点类型与默认数据
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
## 测试指南
|
|
|
|
|
|
|
|
|
|
|
|
### 单元测试
|
|
|
|
|
|
- 使用 pytest 框架
|
|
|
|
|
|
- 测试核心功能和工作流引擎
|
|
|
|
|
|
- 测试API端点
|
|
|
|
|
|
|
|
|
|
|
|
### 集成测试
|
|
|
|
|
|
- 测试数据库操作
|
|
|
|
|
|
- 测试外部API集成
|
|
|
|
|
|
- 测试工作流执行
|
|
|
|
|
|
|
|
|
|
|
|
### 端到端测试
|
|
|
|
|
|
- 测试用户界面交互
|
|
|
|
|
|
- 测试完整工作流执行
|
|
|
|
|
|
- 测试跨浏览器兼容性
|
|
|
|
|
|
|
|
|
|
|
|
## 内置工具列表
|
|
|
|
|
|
|
2026-04-30 00:57:13 +08:00
|
|
|
|
平台提供10个内置工具,详细功能如下:
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
| 工具名称 | 功能描述 | 主要参数 |
|
|
|
|
|
|
|---------|---------|---------|
|
|
|
|
|
|
| http_request | 发送HTTP请求 | url, method, headers, body |
|
|
|
|
|
|
| file_read | 读取文件内容 | file_path |
|
|
|
|
|
|
| file_write | 写入文件内容 | file_path, content, mode |
|
|
|
|
|
|
| text_analyze | 分析文本内容 | text, operation |
|
|
|
|
|
|
| datetime | 处理日期时间 | operation, format |
|
|
|
|
|
|
| math_calculate | 执行数学计算 | expression |
|
|
|
|
|
|
| system_info | 获取系统信息 | 无 |
|
|
|
|
|
|
| json_process | 处理JSON数据 | json_string, operation |
|
2026-04-30 00:57:13 +08:00
|
|
|
|
| database_query | 只读数据库查询 | datasource/query(按工具schema) |
|
|
|
|
|
|
| adb_log | 设备日志读取 | command/serial/lines(按工具schema) |
|
|
|
|
|
|
|
|
|
|
|
|
> 说明:`http_request` 已加入响应体截断与头部精简机制(支持 `max_body_chars`),用于避免大页面导致 LLM 上下文超限。
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
详细使用示例请参考:[内置工具列表.md](./内置工具列表.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 开发进度和路线图
|
|
|
|
|
|
|
|
|
|
|
|
### 当前完成度
|
|
|
|
|
|
- **第一阶段MVP**: 100% ✅
|
|
|
|
|
|
- **第二阶段核心功能**: 100% ✅
|
|
|
|
|
|
- **第三阶段核心功能**: 100% ✅
|
|
|
|
|
|
- **第四-七阶段功能**: 100% ✅
|
2026-05-01 19:32:59 +08:00
|
|
|
|
- **自主 Agent Runtime**: 100% ✅(2026-04 新增)
|
|
|
|
|
|
- **多 Agent 编排**: 100% ✅(2026-05 新增)
|
2026-05-01 22:30:46 +08:00
|
|
|
|
- **Agent 监控 Dashboard**: 100% ✅(2026-05 新增)
|
2026-05-02 17:42:18 +08:00
|
|
|
|
- **SSE 流式输出**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **向量记忆 + 知识库 RAG**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **工具市场**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **工作流预算接入**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **Agent 自主学习**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **Agent 定时任务系统**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **飞书通知与机器人对话**: 100% ✅(2026-05 新增)
|
|
|
|
|
|
- **整体项目**: 约 99.9%
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
### 已完成核心功能
|
|
|
|
|
|
1. **完整的用户认证系统** - 注册、登录、JWT认证
|
|
|
|
|
|
2. **工作流CRUD** - 创建、读取、更新、删除工作流
|
|
|
|
|
|
3. **工作流执行引擎** - DAG构建、拓扑排序、节点执行
|
|
|
|
|
|
4. **可视化编辑器** - 拖拽节点、连线、配置面板
|
|
|
|
|
|
5. **异步任务处理** - Celery集成,支持长时间运行的任务
|
2026-04-30 00:57:13 +08:00
|
|
|
|
6. **多模型支持** - OpenAI、DeepSeek 等(DeepSeek 主推 `deepseek-v4-flash` / `deepseek-v4-pro`)
|
|
|
|
|
|
7. **内置工具调用** - 10 个内置工具支持
|
2026-04-08 11:44:24 +08:00
|
|
|
|
8. **实时状态推送** - WebSocket实时推送执行状态
|
2026-04-30 00:57:13 +08:00
|
|
|
|
9. **批量Agent场景生成** - 教育与政务/媒体场景批量创建脚本
|
|
|
|
|
|
10. **Windows运维文档统一** - 启停/重启流程合并为单一权威文档
|
2026-05-01 19:32:59 +08:00
|
|
|
|
11. **自主 AI Agent 运行时** - 新增 `agent_runtime` 模块(~1020 行),实现 ReAct 自主循环、工具调用、分层记忆管理
|
|
|
|
|
|
12. **Agent 独立对话** - `POST /api/v1/agent-chat/bare` 和 `/{agent_id}` API,前端 AgentChat.vue 页面
|
|
|
|
|
|
13. **工作流 Agent 节点** - 工作流引擎新增 `agent` 节点类型,Agent 可嵌入 DAG 执行
|
|
|
|
|
|
14. **执行追踪与思考链** - 后端 steps 记录每步迭代,前端可展开显示思考链
|
|
|
|
|
|
15. **记忆压缩总结** - LLM 自动提取用户画像/关键事实/话题,去重后存入长期记忆
|
|
|
|
|
|
16. **Agent 配置页面** - AgentConfig.vue 可视化编辑 System Prompt / 模型 / Temperature / 工具
|
|
|
|
|
|
17. **多 Agent 编排** - AgentOrchestrator 三种模式(route/sequential/debate),前端编排 UI 支持模式切换和动态 Agent 编辑
|
|
|
|
|
|
18. **Agent 监控 Dashboard** - 实时 LLM 调用埋点(AgentLLMLog 表)、Agent 用量排行、Token 统计、工具调用频次、日趋势图
|
2026-05-02 17:42:18 +08:00
|
|
|
|
19. **SSE 流式输出** - Agent 思考过程实时推送到前端
|
|
|
|
|
|
20. **向量记忆** - Embedding API + 余弦相似度 Top-K 语义检索
|
|
|
|
|
|
21. **知识库 RAG** - 文件上传 → 5 种格式解析 → 分块 → 向量化 → 检索增强
|
|
|
|
|
|
22. **工具市场** - HTTP/Code 工具 CRUD + 沙箱测试 + 分类浏览
|
|
|
|
|
|
23. **工作流预算接入** - Agent LLM/工具调用计入 WorkflowEngine 全局预算
|
|
|
|
|
|
24. **Agent 自主学习** - 从历史执行中自动优化工具选择策略(AgentLearningPattern)
|
|
|
|
|
|
25. **Agent 定时任务系统** - cron 表达式定时触发 Agent 执行,集成 Celery Beat
|
|
|
|
|
|
26. **飞书通知与机器人对话** - 通知系统、飞书定时任务推送、橙子飞书机器人
|
|
|
|
|
|
|
|
|
|
|
|
### 近期规划
|
|
|
|
|
|
1. **多租户支持** - 租户模型、数据隔离、资源配额管理
|
|
|
|
|
|
2. **插件系统** - 插件注册机制、自定义节点插件开发框架
|
|
|
|
|
|
3. **性能优化** - 工作流执行性能优化、前端性能优化
|
|
|
|
|
|
4. **用户体验优化** - 工作流编辑器优化、Agent使用体验优化
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
|
|
|
|
|
详细开发进度请参考:[开发进度.md](./开发进度.md)
|
|
|
|
|
|
|
|
|
|
|
|
## 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 数据库连接失败
|
|
|
|
|
|
- 检查MySQL数据库是否可访问(腾讯云数据库)
|
|
|
|
|
|
- 检查数据库连接信息是否正确(.env 文件)
|
|
|
|
|
|
- 检查网络连接是否正常
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Redis 连接失败
|
|
|
|
|
|
- 检查Redis是否正在运行
|
|
|
|
|
|
- 检查Redis URL是否正确
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 前端无法连接后端
|
|
|
|
|
|
- 检查后端服务是否正在运行
|
|
|
|
|
|
- 检查前端配置的API URL是否正确(vite.config.ts)
|
|
|
|
|
|
- 检查CORS配置是否正确
|
|
|
|
|
|
|
|
|
|
|
|
### 4. Celery 任务不执行
|
|
|
|
|
|
- 检查Celery Worker是否正在运行
|
|
|
|
|
|
- 检查Redis连接是否正常
|
|
|
|
|
|
- 检查任务是否正确注册
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 工作流执行失败
|
|
|
|
|
|
- 检查节点配置是否正确
|
|
|
|
|
|
- 检查LLM API密钥是否有效
|
|
|
|
|
|
- 查看执行日志获取详细错误信息
|
|
|
|
|
|
|
|
|
|
|
|
## 联系和支持
|
|
|
|
|
|
|
|
|
|
|
|
- **API文档**:http://localhost:8037/docs
|
2026-04-30 00:57:13 +08:00
|
|
|
|
- **前端服务(本地开发)**:http://localhost:3001
|
|
|
|
|
|
- **前端服务(Docker)**:http://localhost:8038
|
2026-04-08 11:44:24 +08:00
|
|
|
|
- **问题反馈**:查看项目文档或联系开发团队
|
|
|
|
|
|
|
2026-04-30 00:57:13 +08:00
|
|
|
|
## 关键文档索引(建议)
|
|
|
|
|
|
|
|
|
|
|
|
- Windows 启停唯一文档:[`(红头)Windows服务器启动与重启唯一指南.md`](./(红头)Windows服务器启动与重启唯一指南.md)
|
|
|
|
|
|
- 上传图片与OCR实现:[`(红头)上传图片和识别的实现文档.md`](./(红头)上传图片和识别的实现文档.md)
|
|
|
|
|
|
- 教育行业批量Agent脚本:`backend/scripts/create_education_agents_batch.py`
|
|
|
|
|
|
- 政务/媒体批量Agent脚本:`backend/scripts/create_gov_media_agents_batch.py`
|
|
|
|
|
|
- 企业场景批量Agent脚本:`backend/scripts/create_enterprise_scenario_agents.py`
|
2026-05-01 19:32:59 +08:00
|
|
|
|
- 自主 AI Agent 改造完成情况:[`自主AI Agent改造完成情况.md`](./自主AI%20Agent改造完成情况.md)
|
|
|
|
|
|
- Agent Runtime 源码入口:`backend/app/agent_runtime/core.py`
|
|
|
|
|
|
- Agent 聊天 API 路由:`backend/app/api/agent_chat.py`
|
|
|
|
|
|
- Agent 聊天前端页面:`frontend/src/views/AgentChat.vue`
|
|
|
|
|
|
- Agent 配置页面:`frontend/src/views/AgentConfig.vue`
|
|
|
|
|
|
- 多 Agent 编排引擎:`backend/app/agent_runtime/orchestrator.py`
|
|
|
|
|
|
- Agent 监控 Dashboard:`frontend/src/views/AgentDashboard.vue`
|
|
|
|
|
|
- Agent LLM 调用日志模型:`backend/app/models/agent_llm_log.py`
|
2026-04-30 00:57:13 +08:00
|
|
|
|
|
2026-04-08 11:44:24 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-02 17:42:18 +08:00
|
|
|
|
**最后更新**: 2026-05-02
|
|
|
|
|
|
**文档版本**: 1.7
|
2026-04-08 11:44:24 +08:00
|
|
|
|
|
2026-04-30 00:57:13 +08:00
|
|
|
|
*本文档基于项目现有文档整理生成,涵盖项目核心信息。详细技术方案请参考[方案-优化版.md](./方案-优化版.md)。DeepSeek 模型名与 Base URL 以官方文档为准,变更时请同步修订本节。*
|