# 案例二：创建智能体

## 场景说明

主智能体适合通用任务，但如果你有特定领域的需求（如专门做数据分析、内容审核、代码审查），可以创建一个具有专属身份和能力的自定义智能体。

## 前置准备

- 已完成 [安装](../getting-started/installation.md)
- 已配置至少一个 AI 模型
- 了解 SOUL.md 的基本概念（智能体的"人格"定义）

## 操作步骤

### 步骤 1：进入角色管理

在 EvoPanel 左侧导航栏中，点击 **「角色」** 图标，进入智能体管理页面。

<!-- 截图占位：create-agent-step1.png — 进入角色管理 -->

> **截图说明**：展示左侧导航栏，标注"角色"图标位置。

### 步骤 2：点击创建新智能体

在角色管理页面右上角，点击 **「+ 新建智能体」** 按钮。

<!-- 截图占位：create-agent-step2.png — 点击新建 -->

> **截图说明**：展示角色管理页面，标注"新建智能体"按钮。

### 步骤 3：填写基本信息

在弹出的表单中填写智能体的基本信息：

- **名称**：给智能体起一个名字（如"数据分析助手"）
- **描述**：简要说明这个智能体的用途

<!-- 截图占位：create-agent-step3.png — 填写基本信息 -->

> **截图说明**：展示新建智能体表单，标注名称和描述输入框。

### 步骤 4：编写 SOUL.md（身份定义）

SOUL.md 是智能体的核心身份文件，用自然语言描述这个智能体的：

- 性格和行为准则
- 专业领域和擅长什么
- 沟通风格（正式/随意/简洁/详细）
- 自主程度（是否需要用户确认再行动）

**示例 SOUL.md 提示词（你可以直接告诉智能体帮你写）：**

在对话中向主智能体输入以下指令，让它帮你生成 SOUL.md：

```
请帮我创建一个数据分析智能体的 SOUL.md，要求：
- 专业、严谨的数据分析专家
- 擅长用 Python 做数据清洗、统计分析和可视化
- 回答时先理解需求，再给出分析方案
- 代码要附注释，结果用图表或表格呈现
- 不确定时会主动询问澄清
```

主智能体会生成一份 SOUL.md 内容，你复制粘贴到智能体编辑页面的 SOUL.md 区域。

<!-- 截图占位：create-agent-step4.png — 编写 SOUL.md -->

> **截图说明**：展示 SOUL.md 编辑区域，标注输入框和内容示例。

### 步骤 5：配置模型和工作区

- **模型**：为该智能体选择一个专用的 AI 模型（可以与主智能体不同）
- **工作区**：选择或创建一个文件夹作为该智能体的工作目录

<!-- 截图占位：create-agent-step5.png — 配置模型和工作区 -->

> **截图说明**：展示模型选择下拉框和工作区路径选择界面。

### 步骤 6：添加工具和技能

选择该智能体可以使用的工具和已安装的技能。比如数据分析智能体可以添加：

- 工具：文件读写、命令执行、端口检测
- 技能：data-analysis、summarize

<!-- 截图占位：create-agent-step6.png — 添加工具和技能 -->

> **截图说明**：展示工具和技能选择列表，标注已勾选的项目。

### 步骤 7：保存并测试

点击 **「保存」**，然后在角色列表中找到新建的智能体，点击 **「对话」** 开始测试。

**测试提示词：**

```
你好，请帮我分析这个 CSV 文件中的数据趋势。
```

<!-- 截图占位：create-agent-step7.png — 保存并测试 -->

> **截图说明**：展示保存后的智能体列表，标注对话入口。

## 小结

创建智能体后，你可以在对话中切换到这个智能体，或者通过定时任务、IM 渠道让它自动执行任务。每个智能体拥有独立的记忆、模型配置和能力集。

<!-- ACCEPTANCE_RECORD_BEGIN -->

# 《案例二：创建智能体》流式验收报告

| 元数据项 | 填写 |
|----------|------|
| **报告 ID** | `20260512-084527-case2-v1` |
| **关联案例 / 场景** | [案例二：创建智能体](create-agent.md) |
| **关联仓库文档** | 本页正文上方「案例」章节 |
| **执行人** | 自动化 `case_doc_acceptance_append.py` |
| **执行时间（本地）** | `2026-05-12T08:45:42.884406+00:00` |
| **代码版本** | `a877c3b3` |
| **Gateway 基址** | `http://127.0.0.1:8070` |
| **LangGraph 端口（若已知）** | 2070（由 Gateway 代理） |
| **session_key** | `agent:main:case-doc-20260512-084527` |
| **默认 assistant_id** | `lead_agent` |

---

## 1. 测试范围与通过准则

**本报告覆盖：**与本案例文档对应的流式/API 验收（共 **1** 次用户发起）。

**功能通过准则：**以本案例文档操作步骤中「可经流式接口验证」的子目标为准；无未处理 SSE error；主答复可读。

**性能与可观测性准则：**记录 `request_total_ms`、TTFT（`first_ai_visible_ms`）及侧载耗时，供与历史 JSON 对比。

---

## 2. 环境与前置条件

| 检查项 | 状态（是/否/不适用） | 说明 |
|--------|----------------------|------|
| 模型与 API Key | 是 | 以本机已配置为准 |
| 技能 / MCP / 渠道 | 未逐项核对 | 见案例前置说明 |
| 沙箱与写盘范围 | 未逐项核对 | 见网关配置 |
| 与本场景相关的配置项 | 未逐项核对 |  |

**原始机器产物：** `docs/cases/reports/raw/case-doc-2-20260512-084527.json`

---

## 3. 交互总览

| 指标 | 值 |
|------|-----|
| **用户发起流式交互总次数** | 1 |
| **涉及 thread_id 数量** | 1 |
| **是否出现 SSE error / HTTP 非 2xx** | 否 |
| **工具调用总次数（含重复 tool_call_id 刷新）** | 2 |

**thread 与时间线：**

| 序号 | thread_id | 用途说明 |
|------|-----------|----------|
| 1 | `f5fbe4b6-9665-481b-8538-64980835bcdf` | 见下节分轮 |

---

## 4. 分轮交互记录

### 4.1 轮次 1

#### 4.1.1 请求与用户输入

| 字段 | 内容 |
|------|------|
| **thread_id** | `f5fbe4b6-9665-481b-8538-64980835bcdf` |
| **本轮在用户界面的序号** | 1 / 1 |
| **activated_scenarios** | `["manage"]` |
| **collab_phase** | `idle` |
| **is_plan_mode / subagent_enabled / thinking_enabled** | `False` / `False` / `False` |
| **recursion_limit** | `200` |
| **用户输入（原文，完整）** | `（见 `e2e_scenarios_api_test.run_scenario_create_agent` 内 `prompt` 全文）` |

#### 4.1.2 流式与模型侧时序（本轮）

| 指标 | 值（ms） | 说明 |
|------|----------|------|
| **request_total_ms** | 14743.251 | 自 POST 起至流读完 |
| **first_sse_payload_ms** | 1249.876 | 至首条有效 data: |
| **first_ai_visible_ms（TTFT）** | 12414.926 | 至首段可见助手正文 |
| **assistant_visible_stream_ms** | 36.337 | 首末次可见正文时间差 |
| **本轮是否出现 error 事件** | 否 |  |

#### 4.1.3 工具调用明细（本轮，按发生顺序）

| # | tool 名称 | tool_call_id | duration_ms | 结果摘要 | 备注 |
|---|-----------|----------------|-------------|----------|------|
| 1 | scenario | `functions.scenario:0` | 1988.184 | 成功 |  |
| 2 | create_agent | `functions.create_agent:1` | 1943.542 | 成功 |  |

#### 4.1.4 模型输出（本轮）

- [x] **正文粘贴**（完整或截断说明见上）

```text
已按要求成功创建 Agent `e2e-bootstrap-20260512164528`（名称：E2E 自动化占位，类型：subagent）。
```

#### 4.1.5 本轮结论（非总评）

| 项 | 内容 |
|----|------|
| **对照准则条目** | 案例二 §步骤 7 前：能通过对话创建可保存的智能体（本流式轮验证创建链路） |
| **子目标是否达成** | 符合 |
| **证据** | `ai_text_seen=True`；侧载种类数 `2` |

---

## 5. 测试意见（文档末尾总评）

### 5.1 结论摘要

- **总体结果：**通过（流式创建链路）
- **阻塞项：**无
- **非阻塞问题：**EvoPanel 表单步骤需人工/UI 另验。


### 5.2 风险与影响

无额外结论；以本案例业务风险为准。

### 5.3 后续建议

若发布前 gate：可对比 `docs/cases/reports/raw` 中历史 JSON 做基线回归。

<!-- ACCEPTANCE_RECORD_END -->
