ForcePilot/docs/advanced/agents.md

120 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智能体
## 智能体开发
系统基于 [LangGraph](https://github.com/langchain-ai/langgraph) 框架,支持自定义智能体应用开发。
系统默认集成示例智能体:
| 智能体 | 功能 | 位置 |
|--------|------|------|
| **基础智能体** | 对话功能 | `src/agents/chatbot/` |
| **ReAct 智能体** | 推理与行动循环 | `src/agents/react/` |
### 开发自定义智能体
如果需要开发自己的智能体的话,可以基于智能体基类以及相关脚手架实现。整体上是和 LangGraph 的架构是适配的,只是在部分功能上需要和平台更加适配才好。
#### 1. 创建智能体类
继承 `BaseAgent` 并实现 `get_graph` 方法:
```python
from .base import BaseAgent
class CustomAgent(BaseAgent):
def get_graph(self):
# 返回 LangGraph 实例
return graph_instance
@property
def context_schema(self):
# 定义配置参数
return schema
```
#### 2. 注册智能体
`src/agents/__init__.py` 中注册:
```python
from .custom_agent import CustomAgent
agent_manager = AgentManager()
agent_manager.register_agent(CustomAgent)
agent_manager.init_all_agents()
```
#### 3. 参考示例
查看 `src/agents/react/graph.py` 中的 `ReActAgent` 实现示例。
## 内置工具与 MCP 集成
::: warning
文档待完善
:::
### 1. MySQL 数据库集成
系统支持智能体查询 MySQL 数据库,为数据分析提供强大支持。
### 配置数据库连接
在环境变量中配置数据库信息:
```env
# MySQL 数据库配置
MYSQL_HOST=192.168.1.100
MYSQL_USER=username
MYSQL_PASSWORD=your_secure_password
MYSQL_DATABASE=database_name
MYSQL_PORT=3306
MYSQL_CHARSET=utf8mb4
```
在智能体配置中启用以下 MySQL 工具:
| 工具名称 | 功能描述 |
|----------|----------|
| `mysql_list_tables` | 获取数据库中的所有表名 |
| `mysql_describe_table` | 获取指定表的详细结构信息 |
| `mysql_query` | 执行只读的 SQL 查询语句 |
### 安全特性
-**只读操作**: 仅允许 SELECT、SHOW、DESCRIBE、EXPLAIN 操作
-**SQL 注入防护**: 严格的表名参数验证
-**超时控制**: 默认 10 秒,最大 60 秒
-**结果限制**: 默认 10000 字符100 行,最大 1000 行
### 可视化图表-MCP-Server
系统支持基于 MCPModel Context Protocol的图表可视化功能。
- 基于 @antvis 团队开发的 [可视化图表-MCP-Server](https://www.modelscope.cn/mcp/servers/@antvis/mcp-server-chart)
- 支持多种图表类型和数据可视化
- 通过魔搭社区配置 Host 资源
`src/agents/common/mcp.py``MCP_SERVERS` 中添加配置:
```python
# MCP Server configurations
MCP_SERVERS = {
"sequentialthinking": {
"url": "https://remote.mcpservers.org/sequentialthinking/mcp",
"transport": "streamable_http",
},
"mcp-server-chart": {
"url": "https://mcp.api-inference.modelscope.net/9993ae42524c4c/mcp",
"transport": "streamable_http",
}
}
```
::: warning 配置注意
记得将 `type` 字段修改为 `transport`
:::