Alou Rust - 自动化工作流智能体
一个基于Rust和Model Context Protocol (MCP)的智能自动化工作流系统,集成了DeepSeek API,提供强大的上下文感知和工具调用能力。
✨ 最新更新
- ✅ 工具调用修复:完全修复了智能体工具调用解析和执行逻辑
- ✅ 后台加载优化:实现了静默的后台MCP服务器加载,提升启动速度
- ✅ Windows兼容性:优化了Windows系统下的MCP服务器配置
- ✅ 智能目录访问:支持多目录配置和智能路径解析
🚀 核心特性
智能体架构
- 多模态智能体:支持文件操作、网络请求、记忆管理等多种工具
- 上下文感知:智能工作区检测,自动识别项目结构和环境
- 工具发现:自动发现和集成MCP服务器提供的工具
- 连接池管理:高效的MCP服务器连接池,支持多服务器并发
- 后台加载:静默的后台MCP服务器加载,提升用户体验
- 智能工具调用:完整的工具调用解析和执行机制
DeepSeek集成
- API客户端:完整的DeepSeek API集成
- 智能提示:基于工作区上下文的动态系统提示生成
- 对话管理:支持多轮对话和上下文保持
- 工具调用:AI驱动的智能工具选择和参数生成
- 响应解析:自动解析DeepSeek响应中的工具调用
- 错误处理:智能的错误处理和重试机制
工作流自动化
- 任务分解:自动将复杂任务分解为可执行步骤
- 并行执行:支持多工具并行调用
- 错误恢复:智能错误处理和重试机制
- 状态管理:完整的智能体状态跟踪和恢复
🏗️ 架构设计
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ DeepSeek API │ │ MCP Agent │ │ MCP Servers │
│ │◄──►│ │◄──►│ │
│ • Chat API │ │ • Context Mgmt │ │ • Filesystem │
│ • Tool Calling │ │ • Tool Discovery │ │ • Memory │
│ • Streaming │ │ • Workflow Exec │ │ • Network │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Connection Pool │
│ │
│ • Multi-server │
│ • Health Check │
│ • Auto-reconnect │
└──────────────────┘
📦 核心组件
智能体 (Agent)
use ;
let config = AgentConfig ;
let mut agent = new.await?;
agent.initialize.await?;
let response = agent.process_input.await?;
连接池 (ConnectionPool)
use ;
let pool = new;
// 注册MCP服务器
pool.register_server.await;
// 获取连接
let client = pool.get_connection.await?;
工作区上下文 (WorkspaceContext)
use WorkspaceContextFactory;
// 智能检测工作区
let context = create_smart;
// 自定义工作区
let context = create_custom;
🛠️ 使用方法
基本使用
use ;
async
高级配置
// 自定义工具策略
let config = AgentConfig ;
🔧 环境配置
环境变量
# DeepSeek API配置
# 可选,默认值
# 工作区配置
# 可选
# 日志配置
# debug, info, warn, error
MCP服务器配置
创建 mcp.json 配置文件:
Linux/macOS 配置
Windows 配置
注意:Windows 系统需要使用
npx.cmd而不是npx,这是因为 Windows 上的npx是 PowerShell 脚本,而 MCP 服务器需要直接可执行的批处理文件。
🚀 快速开始
- 克隆项目
- 安装依赖
- 配置环境
- 运行示例
# 交互式聊天模式
# 测试模式
# 静默模式(减少日志输出)
# 清洁模式(完全隐藏技术日志)
🎯 功能演示
基本工具调用
# 列出目录内容
# 访问特定目录
# 文件操作
智能推理和问题解决
智能体能够:
- 自动发现目录名称大小写问题
- 智能推荐正确的路径
- 提供格式化的输出结果
- 处理多步骤任务
后台加载优化
- 启动时静默加载 MCP 服务器
- 用户首次输入时自动完成工具发现
- 支持多种日志级别(正常、静默、清洁模式)
🔧 故障排除
常见问题
1. MCP 服务器启动失败
错误信息:Failed to spawn process error=program not found
解决方案:
- Windows 用户:确保使用
npx.cmd而不是npx - 检查 Node.js 安装:运行
node --version和npm --version - 检查 PATH 环境变量:确保 npm 全局包路径在 PATH 中
2. 工具调用不执行
症状:智能体显示工具调用 JSON 但不执行
解决方案:
- 确保 DeepSeek API 密钥正确配置
- 检查网络连接
- 查看日志输出中的错误信息
3. 目录访问权限问题
错误信息:Access denied 或目录不在允许列表中
解决方案:
- 在
mcp.json中添加允许访问的目录路径 - 确保路径格式正确(Windows 使用
\\,Linux/macOS 使用/) - 检查文件系统权限
4. 启动速度慢
症状:应用启动时间过长
解决方案:
- 使用
--quiet或--clean模式减少日志输出 - 后台加载功能会自动优化启动速度
- 检查网络连接和 MCP 服务器响应时间
调试模式
启用详细日志输出:
📚 API文档
核心类型
McpAgent: 主要的智能体实现AgentConfig: 智能体配置结构ConnectionPool: MCP服务器连接池WorkspaceContext: 工作区上下文管理ToolInfo: 工具信息结构
主要方法
McpAgent::new(): 创建新的智能体实例McpAgent::initialize(): 初始化智能体(包含后台MCP服务器加载)McpAgent::process_input(): 处理用户输入(支持工具调用解析和执行)McpAgent::execute_tool(): 执行工具调用McpAgent::discover_tools_silent(): 静默发现可用工具ConnectionPool::get_connection(): 获取MCP服务器连接ConnectionPool::list_registered_servers(): 列出已注册的服务器
Contributing
Contributions are welcome! Please open an issue or submit a PR if you have improvements, bug fixes, or new features to propose.
- Fork the repo
- Create a new branch
- Add your changes and tests
- Submit a Pull Request
Please @ darinkishore in the PR if you do send one over.
Credits
License
This project is licensed under the MIT License. See LICENSE for details.