道枢 (Daoshu) 是一个生产级的本地 AI 智能体助手平台,集多模态交互、深度推理、实时对话于一体。系统采用前后端分离架构,支持 Docker 容器化部署,具备完整的工程化能力和高度可扩展的插件体系,让 AI 能力触手可及。
- 🎯 三模式畅聊: 快速响应、深度推理、专家咨询,按需切换
- 🖼️ 多模态交互: 文件解读、图像理解、视频分析,全方位感知
- 🐾 电子宠物: 语音聊天、情感互动、陪伴式 AI 体验
- 🖼️ 图像生成: 文生图、风格迁移、创意设计
- 🎬 视频生成: 文生视频、动态内容创作
- 🎵 语音合成: 多音色 TTS、情感语音播报
- 🧠 DeepAgents 框架: 基于深度推理的智能体编排
- 👤 单智能体 + 多子代理模式:主代理动态调用专业子代理
- 👥 主智能体 + 多子智能体协作:多角色协同完成复杂任务
- 🔧 内置工具: 统计分析、天气查询、学术搜索、百度搜索等
- 🌐 MCP 协议: 集成外部工具和服务,无限扩展可能
- 📚 SKILLS 协议: 智能体自动创建和优化技能,越用越智能
- 📊 RAG 知识检索: ChromaDB 向量检索,行业知识库、专业知识随时调用
- 🔄 动态更新: 知识库实时更新,保持信息时效性
- 🌐 全局搜索: Tavily、DuckDuckGo、百度等多源搜索引擎
- 🔧 沙盒执行: Daytona 安全沙盒,代码执行、文件操作无忧
- 📊 数据分析: 统计分析、数据可视化、洞察报告生成
- 🛡️ 安全机制: 完整的异常处理、CORS 安全配置、请求追踪
- 📝 日志系统: 分级日志、错误专录、性能监控
- 💾 智能缓存: 多级缓存架构,响应速度提升 60%
┌─────────────────────────────────────────────────────────────────┐
│ 前端层 (Vue 3 + TypeScript) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ AI畅聊 │ │ 智能体 │ │ MCP 管理 │ │
│ │ ChatPage │ │ AgentPage │ │ McpPage │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ AI 创作 │ │ 电子宠物 │ │ 模型配置 │ │
│ │ GeneratePage│ │ PetPage │ │ SettingsPage│ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ WebSocket / HTTP / SSE
┌─────────────────────────────────────────────────────────────────┐
│ API 网关层 (FastAPI + Uvicorn) │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 中间件:CORS | GZip | 安全头 | 请求 ID | 异常处理 | 日志 │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 业务逻辑层 (Python 3.12+) │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ 对话模式 │ │ 智能体模式 │ │ MCP 服务 │ │
│ │ - Fast Chat │ │ - Single │ │ - MCP 客户端 │ │
│ │ - Deep Chat │ │ - Multi │ │ - 工具注册 │ │
│ │ - Expert Chat │ │ │ │ - 进度追踪 │ │
│ │ - Files Chat │ │ │ │ │ │
│ │ - Image Chat │ │ │ │ │ │
│ │ - Video Chat │ │ │ │ │ │
│ │ - Tamagotchi │ │ │ │ │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ AI 创作 │ │ SKILLS 协议 │ │ RAG 检索 │ │
│ │ - 图片生成 │ │ - 技能创建 │ │ - 文档加载 │ │
│ │ - 视频生成 │ │ - 技能测试 │ │ - 向量嵌入 │ │
│ │ - 语音生成 │ │ - 技能评估 │ │ - 相似度检索 │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 核心组件层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ LangChain │ │ LangGraph │ │ DeepAgents │ │
│ │ (AI 编排) │ │ (工作流) │ │ (深度智能体) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ ChromaDB │ │ Daytona │ │ MCP SDK │ │
│ │ (向量数据库) │ │ (沙盒环境) │ │ (协议支持) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Edge TTS │ │ SQLite │ │ 缓存系统 │ │
│ │ (语音合成) │ │ (本地存储) │ │ (多级缓存) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 工具服务层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 搜索工具 │ │ 文件工具 │ │ 分析工具 │ │
│ │ - Tavily │ │ - 文件读写 │ │ - 统计分析 │ │
│ │ - DuckDuckGo│ │ - 格式转换 │ │ - 数据可视化 │ │
│ │ - 百度搜索 │ │ - 批量操作 │ │ - 天气查询 │ │
│ │ - arXiv │ │ - 文档管理 │ │ - 系统工具 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ 模型服务层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ OpenAI │ │ DashScope │ │ Ollama │ │
│ │ 兼容接口 │ │ (通义千问) │ │ (本地模型) │ │
│ │ - GPT-4 │ │ - Qwen2.5 │ │ - 自定义 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 多模态模型 │ │ 语音模型 │ │ 嵌入模型 │ │
│ │ - Qwen-VL │ │ - Qwen-TTS │ │ - Embedding │ │
│ │ - Wan-Image │ │ - Edge-TTS │ │ - V4 │ │
│ │ - Wan-Video │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
| 组件 | 技术 | 版本 | 用途 |
|---|---|---|---|
| Web 框架 | FastAPI | 0.135+ | 高性能异步 API 服务 |
| 语言 | Python | 3.12+ | 核心开发语言 |
| AI 编排 | LangChain | 1.2+ | LLM 应用开发框架 |
| 深度智能体 | DeepAgents | 0.5+ | 深度推理 Agent 框架 |
| 工作流引擎 | LangGraph | 1.1+ | 有状态智能体工作流 |
| 向量数据库 | ChromaDB | 1.5+ | RAG 知识检索 |
| 沙盒环境 | Daytona | 0.163+ | 代码执行沙盒 |
| 协议支持 | MCP | 1.27+ | Model Context Protocol |
| 数据库 | SQLite / AioSQLite | 2.0+ | 本地数据存储 |
| 服务器 | Uvicorn | 0.44+ | ASGI 应用服务器 |
| 验证 | Pydantic | 2.12+ | 数据验证和设置管理 |
| 组件 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 框架 | Vue | 3.5+ | 渐进式前端框架 |
| 语言 | TypeScript | 5.0+ | 类型安全的 JavaScript |
| UI 库 | Element Plus | 2.13+ | Vue 3 组件库 |
| 路由 | Vue Router | 5.0+ | 单页应用路由 |
| 构建工具 | Vite | 8.0+ | 下一代前端构建工具 |
| Markdown | Marked | 18.0+ | Markdown 解析渲染 |
| 组件 | 技术 | 用途 |
|---|---|---|
| 容器化 | Docker + Docker Compose | 容器编排和部署 |
| 日志系统 | 自定义 Logger | 分级日志、错误追踪 |
| 缓存 | 内存缓存 + SQLite 缓存 | 模型响应缓存、会话缓存 |
| 监控 | 健康检查端点 | 服务状态监控 |
Daoshu/ # 项目根目录
├── app/ # 后端服务
│ ├── api/ # API 路由层
│ │ └── v1/ # API v1 版本
│ │ ├── stream_chat.py # 流式对话接口
│ │ ├── ws_agent.py # WebSocket 智能体
│ │ ├── mcp_api.py # MCP 管理接口
│ │ ├── config_api.py # 配置管理接口
│ │ └── build_ai_service.py # AI 创作服务
│ ├── config/ # 配置管理
│ │ ├── config.py # Pydantic 配置模型
│ │ └── config.yml # YAML 配置文件
│ ├── core/ # 核心业务逻辑
│ │ ├── agent_mode/ # 智能体模式
│ │ │ ├── single_agent.py # 单智能体
│ │ │ └── multi_agent.py # 多智能体协作
│ │ ├── chat_mode/ # 对话模式
│ │ │ ├── fast_chat.py # 快速聊天
│ │ │ ├── deep_chat.py # 深度思考
│ │ │ ├── expert_chat.py # 专家咨询
│ │ │ ├── files_chat.py # 文件对话
│ │ │ ├── image_chat.py # 图像理解
│ │ │ ├── video_chat.py # 视频分析
│ │ │ ├── tamagotchi_chat.py # 电子宠物
│ │ │ ├── qwen_images.py # Qwen 图像处理
│ │ │ ├── qwen_tts.py # Qwen 语音合成
│ │ │ ├── wan_images.py # 万相图像生成
│ │ │ └── wan_videos.py # 万相视频生成
│ │ ├── components/ # 通用组件
│ │ │ ├── memory_storage.py # 记忆存储
│ │ │ ├── task_router.py # 任务路由
│ │ │ ├── sand_box_manager.py # 沙盒管理
│ │ │ ├── sqlite_db.py # SQLite 数据库
│ │ │ └── sys_prompt.py # 系统提示词
│ │ ├── mcp/ # MCP 服务
│ │ │ └── user_mcp.py # 用户 MCP 管理
│ │ ├── middleware/ # 中间件
│ │ │ └── default_middleware.py
│ │ ├── tools/ # 工具集
│ │ │ ├── arxiv_academic_search_tool.py # 学术搜索
│ │ │ ├── baidu_search_tool.py # 百度搜索
│ │ │ ├── ddgs_search_tool.py # DuckDuckGo 搜索
│ │ │ ├── duck_duck_go_tool.py # DuckDuckGo 工具
│ │ │ ├── file_operations_tool.py # 文件操作
│ │ │ ├── format_document_tool.py # 文档格式化
│ │ │ ├── statistical_analysis_tool.py # 统计分析
│ │ │ ├── system_tool.py # 系统工具
│ │ │ ├── weather_tool.py # 天气查询
│ │ │ └── web_crawling_tool.py # 网页爬取
│ │ ├── agent_cache.py # 智能体缓存
│ │ ├── deep_agent_cache.py # 深度智能体缓存
│ │ └── model_cache.py # 模型缓存
│ ├── logs/ # 应用日志
│ │ ├── app/ # 应用日志
│ │ └── error/ # 错误日志
│ ├── schemas/ # 数据模型定义
│ │ ├── models.py # Pydantic 模型
│ │ └── mcp.py # MCP 数据模型
│ ├── static/ # 前端编译产物
│ │ ├── assets/ # 静态资源
│ │ │ ├── index-C2A7m2HF.css # 样式文件
│ │ │ ├── index-CMyPAxPQ.js # JS 文件
│ │ │ └── vite-BF8QNONU.svg # Vite 图标
│ │ ├── favicon.svg # 网站图标
│ │ ├── icons.svg # 图标集
│ │ └── index.html # HTML 模板
│ ├── temp_frames/ # 临时视频帧
│ ├── utils/ # 工具函数
│ │ ├── base_cache.py # 基础缓存工具
│ │ ├── build_file_management.py # 文件管理
│ │ ├── common.py # 通用工具
│ │ ├── exception.py # 异常处理
│ │ ├── exception_handlers.py # 异常处理器
│ │ ├── logger.py # 日志系统
│ │ ├── printer.py # 打印工具
│ │ ├── response.py # 响应格式化
│ │ ├── sqlite_cache_utils.py # SQLite 缓存工具
│ │ ├── stream_processor.py # 流式处理器
│ │ ├── video_extractor.py # 视频提取
│ │ └── web_socket_utils.py # WebSocket 工具
│ └── main.py # 应用入口
├── data/ # 数据目录
│ ├── chat_mode/ # 对话数据
│ │ ├── agent_cache.db # 智能体缓存
│ │ ├── agent_memory.db # 智能体记忆
│ │ └── agent_store.db # 智能体存储
│ ├── embeddings_db/ # 向量数据库
│ │ └── chroma.sqlite3 # 向量存储
│ ├── mcp_db/ # MCP 配置
│ │ └── mcp_configs.db # MCP 配置数据库
│ └── rag/ # RAG 知识库
│ ├── industry_agent/ # 行业知识库
│ │ └── chroma.sqlite3
│ └── knowledge_agent/ # 通用知识库
│ └── chroma.sqlite3
├── logs/ # 根日志目录
│ ├── app/ # 应用日志
│ └── error/ # 错误日志
├── skills/ # 技能库
│ ├── copywriting/ # 文案创作技能
│ ├── data-analysis/ # 数据分析技能
│ ├── file-operation/ # 文件操作技能
│ ├── generate-baokuan-wenan/ # 爆款文案技能
│ ├── logic/ # 逻辑推理技能
│ ├── quality-check/ # 质量检查技能
│ ├── research/ # 学术研究技能
│ ├── skill-creator/ # 技能创建工具
│ └── skill-from-masters-main/ # 技能学习项目
├── test/ # 测试用例
├── .env # 环境变量配置
├── .env.example # 环境变量示例
├── .gitignore # Git 忽略文件
├── DOCKER.md # Docker 部署文档
├── Dockerfile # Docker 镜像
├── docker-compose.yml # Docker 编排配置
├── docker-logs.bat # Docker 日志查看脚本
├── docker-start.bat # Docker 启动脚本
├── docker-stop.bat # Docker 停止脚本
├── requirements.txt # Python 依赖
├── setup.bat # Windows 环境安装脚本
├── start.bat # Windows 快速启动脚本
└── windows_onPremises.md # Windows 部署文档
- Python 3.12+
- Node.js 18+
- Docker & Docker Compose (可选,推荐)
# 1. 配置环境变量
cd Daoshu
cp .env.example .env
# 编辑 .env 文件,填入 API Key
# 2. 一键启动
docker-compose up -d
# 3. 查看日志
docker-compose logs -f
# 4. 停止服务
docker-compose down访问地址:
- 前端:http://localhost:5173
- 后端 API: http://localhost:8000
- API 文档:http://localhost:8000/docs
# 1. 创建虚拟环境
cd Daoshu
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
# 2. 安装依赖
pip install -r requirements.txt
# 3. 配置环境变量
copy .env.example .env # Windows
# cp .env.example .env # Linux/Mac
# 编辑 .env 文件,填入 API Key
# 4. 启动服务
python -m app.main# 1. 安装依赖
cd vue3-daoshu
npm install
# 2. 启动开发服务器
npm run dev# 模型配置
MODEL_PROVIDER='openai' # 模型提供商
MODEL_NAME='qwen2.5-72b-instruct' # 模型名称
MODEL_API_KEY='your-api-key' # API 密钥
MODEL_BASE_URL='https://...' # API 基础 URL
# 向量模型
EMBEDDING_PROVIDER='dashscope'
EMBEDDING_MODEL='text-embedding-v4'
EMBEDDING_API_KEY='your-key'
# 多模态模型
LLM_MODEL='qwen2.5-72b-instruct'
DEEP_MODEL='kimi-k2-thinking' # 深度思考模型
IMG_MODEL='qwen-vl-plus' # 图像理解模型
QWEN_IMAGES_MODEL='qwen-image-plus' # 图像生成模型
WAN_IMAGES_MODEL='wan2.6-t2i' # 万相图像生成
WAN_VIDEOS_MODEL='wan2.5-t2v-preview'# 万相视频生成
QWEN_TTS_MODEL='qwen3-tts-flash' # 语音合成模型
# 智能体配置
AGENT_PROVIDER='openai'
AGENT_MODEL='qwen3.5-122b-a10b'
# 沙盒环境 (Daytona)
DAYTONA_API_KEY='your-key'
DAYTONA_BASE_URL='https://app.daytona.io/api'
# 搜索工具
TAVILY_API_KEY='your-key'app:
name: "Daoshu(道枢)API"
version: "1.0.0"
host: "localhost"
port: 8888
debug_mode: false
api_prefix: "/api/v1"
docs_enabled: true
logging:
level: "WARNING"
console:
enabled: true
level: "WARNING"
file:
enabled: true
directory: "./logs"
max_bytes: 52428800 # 50MB
backup_count: 10| 模式 | 描述 | 使用场景 |
|---|---|---|
| Fast Chat | 快速响应 (<1s) | 日常聊天、简单问答 |
| Deep Chat | 深度推理分析 | 复杂问题、逻辑推理 |
| Expert Chat | 专家级咨询 | 专业领域问题 |
| Files Chat | 文件理解 | PDF/Word/Excel 分析 |
| Image Chat | 图像理解 | 图片内容识别、分析 |
| Video Chat | 视频分析 | 视频内容理解 |
| Tamagotchi | 电子宠物互动 | 娱乐陪伴 |
- 单智能体模式: 独立完成任务
- 多智能体协作: 多个智能体分工合作,处理复杂任务
- 技能系统: 支持自定义技能 (SKILL.md 规范)
基于 deepagents 库构建的深度智能体框架,提供强大的 Agent 编排能力:
核心特性:
- 🧠 深度推理: 支持复杂任务的逐步推理和分解
- 🔧 工具集成: 无缝集成 MCP 工具和后端工具
- 📦 文件系统后端: 支持基于文件系统的持久化存储
- 🔄 异步执行: 完全异步的 Agent 执行引擎
- 🎯 中间件支持: 可插拔的中间件系统
- 💾 智能缓存: 基于配置哈希的实例缓存
框架架构:
# 深度智能体创建
from deepagents import create_deep_agent
# 核心组件
- AgentExecutor: Agent 执行器
- FilesystemBackend: 文件系统后端
- 中间件系统:消息修剪、格式化等
- 工具系统:MCP 工具 + 自定义工具智能体类型:
- 单智能体: 独立执行任务,适合简单场景
- 多智能体协作:
- Research Subagent: 信息搜集、调研
- Data Analyzer Subagent: 数据分析
- Tool Operator Subagent: 工具执行
- 支持动态子代理构建
工具生态系统:
BACKEND_TOOLS = [
file_operations, # 文件操作
weather_query, # 天气查询
calculator, # 计算器
discount_calculate, # 折扣计算
get_current_time, # 获取时间
get_user_info, # 用户信息
update_user_info, # 更新信息
]
MCP_TOOLS = [
# 用户自定义 MCP 服务器工具
# 动态加载和注册
]缓存机制:
- 基于 MD5 哈希的智能体实例缓存
- 考虑模型、工具、中间件、提示词的唯一性
- 自动过期清理 (默认 2 小时)
- 支持手动清除和刷新
遵循 Anthropic 提出的 MCP 标准协议,实现工具和服务的标准化集成:
核心功能:
- 🔧 工具注册与发现: 动态注册 MCP 工具,自动发现可用功能
- 📡 动态资源管理: 按需加载资源,优化上下文使用
- 🔗 标准化接口: 统一的工具调用协议,简化集成流程
- 🌐 第三方服务集成: 快速接入外部 API 和服务
MCP 客户端配置:
# 支持多种传输方式
- HTTP SSE (Server-Sent Events)
- WebSocket
- Stdio (标准输入输出)内置 MCP 工具:
- 用户自定义 MCP 服务器管理
- 工具调用进度追踪
- 可用性验证与健康检查
SKILLS 协议是一套完整的技能创建、测试、评估和优化框架,基于 SKILL.md 规范:
技能结构:
skill-name/
├── SKILL.md (必需)
│ ├── YAML frontmatter (name, description)
│ └── Markdown 指令
├── scripts/ - 可执行代码 (可选)
├── references/ - 文档资料 (可选)
└── assets/ - 资源文件 (可选)
核心能力:
- ✅ 技能创建: 从用户工作流中提取意图,编写 SKILL.md 规范
- ✅ 测试评估: 自动生成测试用例,支持有技能/无技能基线对比
- ✅ 基准测试: 定量评估技能性能 (通过率、耗时、Token 消耗)
- ✅ 可视化审查: HTML 审查器支持定性反馈和定量指标
- ✅ 描述优化: 自动优化技能描述,提升触发准确率
预置技能:
- 📝 文案创作: 营销文案、工作报告、新媒体内容、商务文案
- 📊 数据分析: 统计分析、数据可视化、洞察报告
- 📁 文件操作: 文件读写、格式转换、批量处理
- 🔥 爆款文案: 抖音/小红书/公众号爆款内容生成
- 🧠 逻辑推理: 复杂问题分析、逻辑推导
- ✅ 质量检查: 内容审核、格式校验
- 🎓 学术研究: 文献检索、论文写作、学术搜索
基于 ChromaDB 的检索增强生成 (RAG) 系统,实现专业知识问答:
系统架构:
RAG 系统
├── 文档加载器
│ ├── PDF / Word / Excel
│ ├── Markdown / Text
│ └── Web 页面抓取
├── 文本分割器
│ ├── 按字符分割
│ ├── 按段落分割
│ └── 递归分割
├── 向量嵌入
│ ├── DashScope (text-embedding-v4)
│ └── 自定义嵌入模型
├── 向量数据库
│ └── ChromaDB (持久化存储)
└── 检索器
├── 相似度搜索
├── 最大边际相关性 (MMR)
└── 混合搜索
核心功能:
- 📚 行业知识库: 针对特定行业的专业知识检索
- 🧠 知识代理: 基于向量相似度的智能检索
- 💾 持久化存储: ChromaDB 向量数据库
- 🔄 实时更新: 支持知识库动态更新
- 🎯 精准检索: 支持 Top-K 检索、分数阈值过滤
- 📊 多路召回: 结合关键词和向量检索
知识库目录:
data/rag/
├── industry_agent/ # 行业知识库
│ └── chroma.sqlite3
└── knowledge_agent/ # 通用知识库
└── chroma.sqlite3
集成通义千问、通义万相等多模态模型,提供全方位的多媒体处理能力:
模型配置:
- 通义万相:
wan2.6-t2i- 高质量图像生成 - Qwen Images:
qwen-image-plus- 精准指令遵循
支持风格:
- 🎨 写实风格
- 🖼️ 艺术风格
- 📸 摄影风格
- 🎭 抽象艺术
- 🏮 中国风
功能特性:
- 自定义分辨率配置
- 多轮迭代优化
- 负面提示词支持
- 批量生成
模型: wan2.5-t2v-preview
能力:
- 🎬 文本描述生成视频
- 🖼️ 图片 + 文本生成视频
- ⏱️ 支持多时长配置
- 🎵 支持简单动画效果
模型: qwen3-tts-flash
特性:
- 🗣️ 多音色支持: 中文、英文、方言等多种音色
- 🌍 多语言合成: 支持中文、英文等主流语言
- 🎵 情感语调: 自然的情感表达和语调变化
- ⚡ 快速响应: 流式合成,低延迟播放
应用场景:
- 🎤 电子宠物语音: 宠物回答自动语音播放 (Edge TTS)
- 📖 内容朗读: 文章、新闻、消息播报
- 🔊 语音助手: 语音交互反馈
- 🎧 有声内容: 生成有声读物、课程
模型配置:
- 图像理解:
qwen-vl-plus - 高级视觉:
qwen-vl-max-latest
能力:
- 📷 图像内容识别
- 📊 图表分析
- 📝 OCR 文字提取
- 🔍 视觉推理
- 🎨 艺术鉴赏
| 工具 | 描述 | 使用场景 |
|---|---|---|
| Tavily API | AI 优化搜索引擎 | 事实核查、最新信息查询 |
| DuckDuckGo | 隐私保护搜索引擎 | 通用搜索 |
| 百度搜索 | 中文搜索引擎 | 中文内容检索 |
| arXiv | 学术论文搜索 | 科研文献检索 |
- 📁 文件读写: 支持多种文件格式
- 📄 文档格式化: Markdown、JSON、XML 等格式转换
- 🔄 批量操作: 批量文件处理
- 📂 文件管理: 目录操作、文件搜索
- 📊 统计分析: 描述性统计、相关性分析
- 📈 数据可视化: 图表生成、数据展示
- 🌤️ 天气查询: 实时天气、天气预报
- 💻 系统工具: 系统信息查询、性能监控
- 🐍 Python 执行: 沙盒环境中的代码执行
- 🔍 代码分析: 代码审查、优化建议
- 🧪 测试生成: 单元测试自动生成
- 📚 学术工具: 文献检索、引用格式化
- 📰 新闻工具: 新闻资讯获取
- 💼 商业工具: 公司信息、行业分析
基于 Vue 3 + TypeScript + Element Plus 构建的现代化单页应用:
src/
├── views/ # 页面组件
│ ├── ChatPage.vue # 智能对话页面
│ ├── AgentPage.vue # 智能体配置页面
│ ├── McpPage.vue # MCP 管理页面
│ ├── SettingsPage.vue # 系统设置页面
│ ├── GeneratePage.vue # AI 创作页面 (文生图/视频/音频)
│ ├── PetPage.vue # 电子宠物互动页面
│ └── ProfilePage.vue # 用户资料页面
├── components/ # 通用组件
│ └── TamagotchiChat.vue # 电子宠物组件
├── layouts/ # 布局组件
│ └── MainLayout.vue # 主布局
└── router/ # 路由配置
- 💬 流式对话: 实时流式响应,打字机效果
- 🎯 模式切换: 快速/深度/专家模式一键切换
- 📊 思考过程: 深度模式支持查看推理过程
- 🔧 工具调用: 专家模式显示工具调用详情
- 📝 Markdown 渲染: 支持代码高亮、表格、公式
- 🤖 智能体管理: 创建、编辑、删除智能体
- ⚙️ 参数配置: 模型选择、温度调节、系统提示词
- 🧠 知识绑定: 关联 RAG 知识库
- 🔌 技能挂载: 绑定 SKILLS 技能
- 🔧 服务器管理: 添加、配置 MCP 服务器
- 📡 连接测试: 实时验证 MCP 可用性
- 🛠️ 工具浏览: 查看已注册的工具列表
- 📊 调用日志: 追踪工具调用历史
- 🎨 文生图: 基于通义万相的图像生成
- 🎬 文生视频: 视频内容生成
- 🎵 文生音频: TTS 语音合成
- 📝 创意写作: 文案、脚本、报告生成
- 🐾 宠物互动: 虚拟宠物养成
- 💬 情感对话: 拟人化交互
- 🎮 小游戏: 互动娱乐功能
- 🎤 语音对话: 支持语音输入和 TTS 语音输出
- 🔊 实时播报: 宠物回答自动语音播放
- 🎵 音色选择: 支持多种 TTS 音色配置
语音对话功能:
// 前端语音识别
- Web Speech API 语音识别
- 实时语音转文字
- 支持中文识别
// 后端 TTS 语音合成
- Edge TTS 引擎
- 音色:zh-CN-XiaoxiaoNeural 等
- 语速可调节 (+30% 加快)
- 流式音频分片播放- 🌙 主题切换: 支持亮色/暗色主题
- 📱 响应式设计: 适配桌面端和移动端
- ⚡ 性能优化: 虚拟滚动、懒加载
- ♿ 无障碍支持: 符合 WCAG 2.1 标准
- 🌍 国际化: 支持多语言切换 (待实现)
GET / # 健康检查
GET /health # 服务健康状态
POST /api/v1/chat/stream # 流式对话
WS /api/v1/agent/ws # WebSocket 智能体
GET /api/v1/mcp/tools # 获取 MCP 工具列表
POST /api/v1/mcp/call # 调用 MCP 工具
GET /api/v1/config/models # 获取模型配置
PUT /api/v1/config/models # 更新模型配置
启动服务后访问: http://localhost:8000/docs
Swagger UI 提供完整的 API 文档和在线测试功能。
# 运行测试
cd Daoshu
pytest
# 运行特定测试
pytest test/test_config.py -v
# 生成覆盖率报告
pytest --cov=app --cov-report=html- 环境变量安全
- 使用 secrets 管理敏感信息
- 不要将 .env 提交到版本控制
- 性能优化
- 启用多 worker 模式
- 配置 GZip 压缩
- 启用 Redis 缓存 (可选)
- 安全加固
- 配置 CORS 白名单
- 启用 HTTPS
- 配置速率限制
- 监控告警
- 集成 Prometheus + Grafana
- 配置日志聚合 (ELK)
- 设置健康检查告警
# 构建生产镜像
docker-compose -f docker-compose.prod.yml build
# 启动生产环境
docker-compose -f docker-compose.prod.yml up -d
# 扩容
docker-compose up -d --scale backend=3- 在
app/core/chat_mode/创建新模式文件 - 实现统一的接口规范
- 在路由中注册新端点
- 更新前端页面
- 在
app/core/tools/创建工具类 - 继承
DefaultTool基类 - 实现
execute()方法 - 在 MCP 服务中注册
参考 skills/ 目录下的技能模板:
- 编写 SKILL.md 规范文件
- 定义输入输出格式
- 实现技能逻辑
- 添加测试用例
问题: 后端服务无法启动
解决方案:
# 检查 Python 版本
python --version # 需要 3.12+
# 检查依赖安装
pip install -r requirements.txt
# 检查 .env 文件配置
cat .env
# 查看日志
tail -f logs/error/error.log问题: 模型调用失败,返回认证错误
解决方案:
- 检查
.env文件中的 API Key 是否正确 - 确认 API Key 格式 (无多余空格或引号)
- 验证 API Key 是否有效 (访问提供商控制台)
- 检查 MODEL_BASE_URL 是否正确
问题: docker-compose up 失败
解决方案:
# 检查 Docker 服务
docker --version
docker-compose --version
# 查看容器日志
docker-compose logs backend
docker-compose logs frontend
# 重新构建
docker-compose down
docker-compose build --no-cache
docker-compose up -d问题: 前端请求超时或 404
解决方案:
- 检查后端服务是否运行 (
http://localhost:8000/health) - 检查 CORS 配置是否允许前端域名
- 确认 API 基础 URL 配置正确
- 查看浏览器开发者工具的网络请求
问题: ChromaDB 初始化失败
解决方案:
# 删除旧的向量数据库
rm -rf data/embeddings_db/*
rm -rf data/rag/*
# 重启服务
python -m app.main问题: 服务运行中内存占用过高
解决方案:
- 调整缓存大小限制
- 减少并发 worker 数量
- 定期清理临时文件
- 增加系统 swap 空间
# 查看应用日志
tail -f Daoshu/logs/app/app.log
# 查看错误日志
tail -f Daoshu/logs/error/error.log
# Docker 日志
docker-compose logs -f backend
docker-compose logs -f frontend
# 实时日志监控
docker-compose logs -f | grep "ERROR"# 检查 API 响应时间
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:8000/health
# 查看慢查询
grep "duration" logs/app/app.log | sort -rn | head -20
# 监控资源使用
docker stats daoshu-backend daoshu-frontend- 📖 查看 API 文档
- 📝 检查日志文件定位问题
- 🐛 在 GitHub Issues 提交问题
- 💬 联系技术支持团队
- 响应时间:
- Fast Chat: < 1s
- Deep Chat: 5-15s
- Expert Chat: 10-30s
- 并发能力:
- 单实例:100+ QPS
- 支持水平扩展
- 缓存命中率:
- 模型缓存:60-80%
- 会话缓存:90%+
- ✅ 输入验证 (Pydantic)
- ✅ CORS 安全配置
- ✅ 请求 ID 追踪
- ✅ 异常统一处理
- ✅ 日志审计
- ✅ 沙盒隔离执行
- ✅ 敏感信息加密存储
集成 Daytona 沙盒平台,提供安全的代码执行环境:
核心能力:
- 🛡️ 隔离执行: 每个任务在独立沙盒中运行
- 🔐 权限控制: 细粒度的资源访问控制
- 📦 环境预装: Python、Node.js 等常用运行时
- 🔄 文件管理: 安全的文件读写操作
- 📊 资源限制: CPU、内存、网络访问限制
- 🔍 执行监控: 实时追踪执行进度和输出
使用场景:
- 代码执行与测试
- 数据分析与可视化
- 文件批量处理
- 网络请求 (受控)
- 第三方库使用
安全机制:
沙盒安全层级
├── 网络隔离 (默认禁止外网访问)
├── 文件系统隔离 (沙盒内目录)
├── 进程隔离 (独立 PID 命名空间)
├── 资源限制 (CPU/Memory Quota)
└── 超时保护 (自动终止长时间任务)
生产级日志系统,支持分级记录和错误追踪:
日志配置:
logging:
level: "INFO"
console:
enabled: true
level: "WARNING"
file:
enabled: true
directory: "./logs"
max_bytes: 52428800 # 50MB
backup_count: 10
error_file:
enabled: true
filename: "error.log"
level: "ERROR"日志级别:
- 🟢 DEBUG: 调试信息
- 🔵 INFO: 一般信息
- 🟡 WARNING: 警告信息
- 🔴 ERROR: 错误信息
- 🟣 CRITICAL: 严重错误
日志特性:
- 📝 分级记录: 控制台和文件独立配置
- 🔄 轮转机制: 基于文件大小自动轮转
- 📊 错误专录: 错误日志单独记录
- 🎯 请求追踪: 每个请求带唯一 ID
- 📈 性能日志: 记录慢查询和性能瓶颈
多级缓存架构,提升响应速度和降低 API 成本:
缓存层级:
缓存系统
├── 内存缓存 (ModelCache)
│ ├── 模型实例缓存
│ └── 会话缓存
├── SQLite 缓存 (AgentCache)
│ ├── 对话历史缓存
│ └── 中间结果缓存
└── 向量缓存 (Embeddings)
└── ChromaDB 持久化
缓存策略:
- 🚀 模型缓存: 复用 LLM 实例,避免重复初始化
- 💬 对话缓存: 存储对话历史,支持上下文恢复
- 📊 响应缓存: 相似查询直接返回缓存结果
- 🔄 失效策略: TTL、LRU、手动清除
- 📈 统计监控: 命中率、缓存大小实时监控
性能提升:
- 模型缓存命中率:60-80%
- 会话缓存命中率:90%+
- 平均响应时间降低:40-60%
MIT License - 详见 LICENSE 文件
- QQ邮箱:1405164278@qq.com
本项目使用了以下优秀的开源项目:
- FastAPI - 现代高性能 Web 框架
- LangChain - LLM 应用开发框架
- LangGraph - 智能体工作流引擎
- ChromaDB - 向量数据库
- Vue.js - 渐进式 JavaScript 框架
- Element Plus - Vue 3 组件库
- Daytona - 开发沙盒平台
- MCP - Model Context Protocol
道枢 (Daoshu) | 以 AI 之力,洞见未来
Made with ❤️ by AI Engineering Team
# 后端开发启动
cd Daoshu
python -m app.main
# 前端开发启动
cd vue3-daoshu
npm run dev
# Docker 一键启动
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止并清理
docker-compose down -v
# 运行测试
cd Daoshu
pytest
# 检查依赖
pip check
# 更新依赖
pip install -r requirements.txt --upgrade| 服务 | 端口 | 描述 |
|---|---|---|
| 后端 API | 8000 | FastAPI 服务 |
| 前端 | 5173 | Vite 开发服务器 |
| API 文档 | 8000/docs | Swagger UI |
| 文件 | 路径 | 描述 |
|---|---|---|
| 环境变量 | Daoshu/.env |
API Key 等配置 |
| 应用配置 | Daoshu/app/config/config.yml |
应用参数 |
| 依赖列表 | Daoshu/requirements.txt |
Python 依赖 |
| Docker 配置 | docker-compose.yml |
容器编排 |
| 启动脚本 | start.bat |
Windows 快速启动 |
| 目录 | 描述 |
|---|---|
app/api/v1/ |
API 路由 |
app/core/chat_mode/ |
对话模式 |
app/core/agent_mode/ |
智能体模式 |
app/core/tools/ |
工具集 |
app/static/ |
前端编译产物 |
skills/ |
SKILLS 技能库 |
data/ |
数据目录 |
logs/ |
日志目录 |
# 通义千问 (推荐)
MODEL_PROVIDER=openai
MODEL_NAME=qwen2.5-72b-instruct
MODEL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 深度思考模型
DEEP_MODEL=kimi-k2-thinking
EXPERT_MODEL=kimi-k2-thinking
# 向量模型
EMBEDDING_PROVIDER=dashscope
EMBEDDING_MODEL=text-embedding-v4
# 多模态模型
IMG_MODEL=qwen-vl-plus
QWEN_IMAGES_MODEL=qwen-image-plus
WAN_IMAGES_MODEL=wan2.6-t2i
QWEN_TTS_MODEL=qwen3-tts-flash| 模式 | 响应时间 | 使用场景 |
|---|---|---|
| Fast Chat | <1s | 日常聊天、简单问答 |
| Deep Chat | 5-15s | 复杂问题、逻辑推理 |
| Expert Chat | 10-30s | 专业领域、工具调用 |
- 📧 邮箱:1405164278@qq.com
- 📖 API 文档:http://localhost:8000/docs
- 🐛 问题反馈:提交 Issue
- 📝 更新日志:查看 Releases
