# 子智能体集成测试

本文档说明如何测试新的子智能体系统。

## 前置条件

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. 完善文档和示例
