agent-Specialization/SUB_AGENT_TESTING.md

203 lines
4.4 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.

# 子智能体集成测试
本文档说明如何测试新的子智能体系统。
## 前置条件
1. 确保 Node.js 已安装18+
2. 安装 easyagent 依赖:
```bash
cd easyagent
npm install
```
3. 确保 models.json 配置正确(复制 easyagent 根目录的 models.json 到 easyagent/ 目录)
## 测试步骤
### 1. 测试批处理模式
```bash
# 创建测试目录
mkdir -p /tmp/test_subagent
cd /tmp/test_subagent
# 创建测试任务文件
cat > task.txt << 'EOF'
你是子智能体 1负责以下任务
**任务摘要**:创建测试文件
**任务详情**
在当前目录创建一个名为 test.txt 的文件,内容为 "Hello from sub-agent"。
**交付目录**/tmp/test_subagent/deliverables
请将所有生成的文件保存到此目录。
**超时时间**60 秒
完成任务后,请调用 finish_task 工具提交完成报告。
EOF
# 创建系统提示文件
cat > system.txt << 'EOF'
你是一个专注的子智能体,负责独立完成分配的任务。
完成任务后,必须调用 finish_task 工具。
EOF
# 运行批处理
node /Users/jojo/Desktop/agents/正在修复中/agents/easyagent/src/batch/index.js \
--workspace /tmp/test_subagent \
--task-file task.txt \
--system-prompt-file system.txt \
--output-file output.json \
--stats-file stats.json \
--agent-id 1 \
--timeout 60
# 检查结果
cat output.json
ls -la deliverables/
```
### 2. 测试主智能体集成
启动 Web 服务器:
```bash
cd /Users/jojo/Desktop/agents/正在修复中/agents
python -m server.app
```
在浏览器中测试:
1. 登录系统
2. 创建新对话
3. 发送消息:
```
请创建一个子智能体编号1任务是在项目根目录创建一个 test.md 文件,内容为"测试子智能体功能"。
```
4. 观察子智能体执行过程
5. 检查交付目录:`sub_agent_results/agent_1/`
### 3. 测试后台运行
发送消息:
```
请创建一个后台运行的子智能体编号2任务是搜索项目中所有的 Python 文件并统计行数,生成报告到 reports/line_count.md。设置为后台运行。
```
然后继续发送其他消息,观察子智能体完成后的通知。
### 4. 测试多个并行子智能体
发送消息:
```
请同时创建3个子智能体
1. 编号1分析 core/ 目录的代码结构
2. 编号2分析 modules/ 目录的代码结构
3. 编号3分析 utils/ 目录的代码结构
都设置为后台运行,交付目录分别为 reports/core、reports/modules、reports/utils。
```
### 5. 测试查询状态
在子智能体运行时,发送消息:
```
查询子智能体 1、2、3 的状态
```
### 6. 测试终止子智能体
发送消息:
```
终止子智能体 2
```
## 预期结果
1. **批处理模式**
- output.json 包含 success 和 summary
- deliverables/ 目录包含生成的文件
- deliverables/.subagent/conversation.json 包含对话记录
2. **主智能体集成**
- 阻塞模式:立即返回完成结果
- 后台模式:立即返回 running 状态,完成后收到通知
3. **并行执行**
- 多个子智能体同时运行
- 各自独立完成任务
- 不会相互干扰
4. **状态查询**
- 返回每个子智能体的运行时间、工具使用统计
- 显示当前状态running/completed
5. **终止功能**
- 子智能体进程被终止
- 部分结果保留
## 常见问题
### 1. Node.js 找不到
确保 Node.js 已安装并在 PATH 中:
```bash
which node
node --version
```
### 2. 模型配置错误
检查 easyagent/models.json 是否存在且配置正确。
### 3. 权限问题
确保交付目录有写权限:
```bash
chmod -R 755 sub_agent_results/
```
### 4. 子进程无法启动
检查 easyagent 批处理文件路径是否正确:
```bash
ls -la /Users/jojo/Desktop/agents/正在修复中/agents/easyagent/src/batch/index.js
```
### 5. 对话记录未保存
检查交付目录的 .subagent/ 子目录权限。
## 调试技巧
1. 查看子进程输出:
```bash
tail -f logs/debug_stream.log
```
2. 查看任务状态文件:
```bash
cat data/sub_agent_state.json
```
3. 查看子智能体输出:
```bash
cat sub_agent_tasks/sub_1_*/output.json
```
4. 查看统计信息:
```bash
cat sub_agent_tasks/sub_1_*/stats.json
```
## 下一步
测试通过后,可以:
1. 添加更多工具到子智能体
2. 优化性能和错误处理
3. 添加前端展示界面
4. 完善文档和示例