Files
aiagent/docs/agent-guides/创建agent.md
renjianbo eabf90c496 feat: add AI学习助手 agent (KG+RAG ideal) and renshenguo feishu bot
- Add AI学习助手 agent creation script with all 39 tools, 3-layer KG+RAG memory
- Add renshenguo (人参果) feishu bot integration (app_service + ws_handler)
- Register renshenguo WS client in main.py startup
- Add RENSHENGUO_APP_ID / RENSHENGUO_APP_SECRET / RENSHENGUO_AGENT_ID config
- Reorganize docs from root into docs/ subdirectories
- Move startup scripts to scripts/startup/
- Various backend optimizations and tool improvements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-06 01:37:13 +08:00

232 lines
6.8 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.
# Agent 创建指南
## 概述
本系统支持多种方式创建 Agent。**所有创建方式均默认赋予 Agent 全部 34 个内置工具能力**,除非明确限制。
## 内置工具清单34个
| 类别 | 工具 | 用途 |
|------|------|------|
| 文件 | `file_read` | 读文件:文本/PDF/docx/xlsx/图片OCR(作业拍照识别) |
| 文件 | `file_write` | 写文件:笔记、报告、数据导出 |
| 网络 | `http_request` | HTTP 请求:上网查资料、调 API |
| 网络 | `url_parse` | URL 解析 |
| 数据 | `json_process` | JSON 结构化数据处理 |
| 数据 | `database_query` | 数据库查询 |
| 计算 | `math_calculate` | 数学计算 |
| 文本 | `text_analyze` | 文本分析 |
| 时间 | `datetime` | 日期时间计算、倒计时 |
| 系统 | `system_info` | 系统环境信息 |
| 调度 | `schedule_create` | 创建定时任务cron 表达式) |
| 调度 | `schedule_list` | 查看定时任务列表 |
| 调度 | `schedule_delete` | 删除定时任务 |
| 通信 | `send_email` | 发送邮件 |
| 工具 | `regex_test` | 正则表达式测试 |
| 工具 | `crypto_util` | 加密/解密工具 |
| 工具 | `random_generate` | 随机数据生成 |
| 调试 | `adb_log` | Android 设备日志ADB |
| 协作 | `agent_call` | 调用其他 Agent 委派任务Agent 间协作) |
| 协作 | `agent_create` | 动态创建专业子 Agent自我扩展能力 |
| 协作 | `tool_register` | 动态注册新 HTTP 工具(自我扩展工具) |
---
## Agent 自主能力扩展
Agent 可以通过 `agent_create` + `tool_register` 在运行时自我扩展能力和工具。
### 能力不足时的自主决策流程
```
Agent 收到复杂任务
├─ 评估自身能力是否足够
├─ 能力足够 → 直接处理
├─ 领域知识不足 → agent_create 创建专业子 Agent → agent_call 委派
├─ 缺少实用工具 → web_search 找到外部 API → tool_register 注册工具 → 直接调用
└─ 整合所有结果返回用户
```
### agent_create — 动态创建子 Agent
```
agent_create(
name="SQL优化专家",
system_prompt="你是MySQL性能优化专家擅长分析慢查询日志并给出优化建议...",
description="专门优化MySQL慢查询"
)
→ {"status": "created", "agent": {"id": "uuid", ...}}
# 创建后立即委派
agent_call(agent_name="SQL优化专家", query="分析这份慢查询日志")
```
### tool_register — 动态注册工具
```
tool_register(
name="currency_exchange",
description="查询实时汇率",
method="GET",
url="https://api.exchangerate-api.com/v4/latest/{base_currency}"
)
→ {"status": "registered", "tool": {"id": "uuid", ...}}
# 注册后立即可用
currency_exchange(base_currency="USD")
```
---
## Agent 间协作agent_call
全能助手等通用 Agent 可以通过 `agent_call` 工具调用其他专业 Agent
```
用户: "帮我分析这段日志,然后看看我该注意什么健康问题"
全能助手 自主决策:
→ agent_call(agent_name="日志分析师", query="分析这段日志...")
→ agent_call(agent_name="家庭医生助手", query="最近压力大该注意什么...")
→ 整合两个 Agent 的结果,统一回复用户
```
**执行流程:**
1. 按 Agent 名称模糊匹配查找目标 Agent
2. 解析目标 Agent 的 workflow_configsystem_prompt、model、tools 等)
3. 创建 AgentRuntime 独立执行(有独立 ReAct 循环)
4. 返回结构化的执行结果reply + 迭代次数 + 工具调用次数)
---
## 创建方式
### 方式一前端界面创建http://localhost:3001/agents
#### 1.1 手动创建
1. 打开 http://localhost:3001/agents
2. 点击「创建 Agent」
3. 填写名称、描述
4. 进入工作流设计器拖拽节点(至少需要一个 LLM 或 Agent 节点)
5. **不设置工具白名单 = 全部工具可用**
6. 保存
#### 1.2 场景模板创建
1. 在 Agents 页面点击「从场景模板创建」
2. 选择模板(客服/研发/运维)
3. 填写名称
4. 系统默认启用全部工具(`enable_tools=true``tools` 为空)
#### 1.3 导入 JSON
1. 导出已有 Agent 的 JSON
2. 修改后导入
3. 若 JSON 中未指定 `tools` 字段 = 全部工具
---
### 方式二:后端 API 创建
```bash
# 直接创建
curl -X POST http://localhost:8037/api/v1/agents \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "My Agent",
"description": "Agent description",
"workflow_config": {
"nodes": [
{"id": "start-1", "type": "start", "position": {"x": 80, "y": 120}, "data": {}},
{"id": "llm-1", "type": "llm", "position": {"x": 320, "y": 120},
"data": {
"prompt": "你是一个有用的AI助手",
"enable_tools": true
// 不指定 tools = 全部工具
}}
],
"edges": [...]
}
}'
```
### 方式三Python 脚本创建
```python
from app.core.database import SessionLocal
from app.models.agent import Agent
import uuid
agent = Agent(
id=str(uuid.uuid4()),
name="My Agent",
description="Description",
workflow_config={
"nodes": [
{"id": "node_1", "type": "llm", "label": "LLM",
"data": {
"system_prompt": "你是一个有用的AI助手",
"model": "deepseek-v4-flash",
"provider": "deepseek",
"temperature": 0.7,
"max_iterations": 10,
# 不指定 tools = 全部工具
}}
],
"edges": []
},
status="active",
)
db = SessionLocal()
db.add(agent)
db.commit()
db.close()
```
---
## 工具配置规则
### Agent 节点AgentRuntime 执行)
- `tools` 字段不存在 → 全部工具
- `tools: []` → 全部工具
- `tools: ["file_read", "http_request"]` → 仅这两个工具
### LLM 节点(工作流引擎执行)
- `enable_tools: false` → 无工具
- `enable_tools: true` + `tools` 未设置/为空 → 全部工具
- `enable_tools: true` + `tools: ["file_read"]` → 仅 file_read
### 飞书长连接路由WS Handler
- 读取 Agent workflow_config 节点 data 中的 `tools` 字段
- 未设置 = `include_tools=[]` = 全部工具
---
## 快速检查 Agent 能力
```
GET /api/v1/health
```
返回 `builtin_tools.count``builtin_tools.names`,确认工具已注册。
---
## 配置飞书连接
1. 在飞书开放平台创建应用,开启「机器人」能力
2.`.env` 中添加:
```
XXXXX_APP_ID=cli_xxx
XXXXX_APP_SECRET=xxx
XXXXX_AGENT_ID=<agent_uuid>
```
3. 创建 `app/services/xxxxx_app_service.py`token 管理 + 消息发送)
4. 创建 `app/services/xxxxx_ws_handler.py`WebSocket 长连接 + 消息路由)
5.`app/core/config.py` 添加配置字段
6.`app/main.py` startup 事件中启动 WS 客户端
7. 重启后端