# 配置 Agent

在侧栏打开 **Agents**。Agent 保存可重复使用的模型、指令、能力范围、记忆权限和频道对话设置，不要求绑定某一种专用任务。

点击 **新建 Agent**，输入名称并选择模型后编辑配置。内部 ID 自动生成。列表支持按名称、ID 和描述搜索。

| 分区 | 配置内容 |
| --- | --- |
| 常规 | 显示名称、描述、Provider、模型和思考强度 |
| Programs | 自动提供工具、指定程序或关闭程序 |
| Skills | 可用技能和排除项 |
| MCP | 允许、排除和必需的服务器 |
| 长期记忆 | 关闭、只读或读写，以及读取和写入范围 |
| 上下文 | 频道对话隔离、空闲重置和每日重置 |
| 高级 | 频道身份、提及规则、可选指令和 Workspace 文件路径 |

所有分区共用一份草稿，**保存**写入完整配置。切换 Agent 或执行会丢弃草稿的操作时，可以选择保存、放弃或取消。保存失败会保留草稿。其他编辑器先保存时，先比较当前草稿与最新版本，再选择保留哪一份。保留草稿不会立即覆盖最新版本，需要复核后再次保存。

模型选择器读取 Provider 目录，不修改其他对话的模型。继承使用当前默认模型。不可用模型或不兼容的思考强度会保留显示，直到明确修改。缺少必需的 MCP 服务器时，在请求模型前停止执行。

## 专用 Agent

决策、轻量助手和统筹规划是 Agent 类的已保存固定参数配置，不包含预设的角色 system prompt；任务由调用处及 Context 提供。可以从列表选择、开始对话或编辑。列表显示用途，配置标签位于编辑区顶部。新建 Agent 创建独立配置，复制操作复用已有 Agent 的保存配置。

| Agent | 用途 | 能力 |
| --- | --- | --- |
| 决策 | 通过 `Agent.choose()` 从给定选项中选择一项 | 一次模型调用，不使用工具或自动重选 |
| 轻量助手 | 提取、分类、格式转换、摘要，以及按需预测候选下一句 | 不启用工具 |
| 统筹规划 | 规划依赖、委派已授权任务、检查结果 | 读取、检索和 Agent 协作工具 |

在常规分区中，为轻量助手选择低价模型，为统筹规划选择较强的推理模型。名称不保证费用或输出质量。预测的下一句话只是候选，不代表授权；只要求规划不授权执行委派。

专用 Agent 初始关闭记忆、Skills 和 MCP。Context 由现有执行机制构建。每个保存的 Agent 可独立修改和复制，不修改默认 Agent。

Python 可以直接调用已保存的 Agent：

```python
from openprogram import Agent
from openprogram.agent.management import manager

helper = Agent.from_spec(manager.get("utility"))
result = helper("从这句话提取城市：活动在新加坡举行。")
```


单选调用提供选项 ID 和内容，返回选中的 ID：

```python
selector = Agent.from_spec(manager.get("decision"))
selected = selector.choose("判断这句话的类别。", {"A": "提问", "B": "陈述"})
```

`choose()` 使用当前 Context 和 DAG，关闭工具与网页搜索。非法答案抛出 `DecisionError`，不再次请求模型重选。模型和思考参数由调用者配置；该入口不增加推理或顾问工作流程。普通 `__call__()` 仍可用于常规模型回答。

`openprogram.agent.management.builtin_agents` 的 `create_builtin_agents()` 是显式安装操作，只创建缺少的专用记录并保留已有记录。读取列表不安装 Agent，也不重建已删除的 Agent。

## 开始对话和试运行草稿

**新对话**使用已保存的 Agent 配置。**在新对话试运行**将当前草稿用于独立对话，不保存 Agent。首次发送消息时记录该试运行的配置快照，后续消息和恢复执行继续使用这份快照。试运行不写长期记忆：已保存配置或草稿关闭记忆时保持关闭，其余情况最多只读。

多个尚未发送的对话分别保留 Agent 选择和覆盖设置。发送某个对话不会使用其他标签页的 Agent。首次发送被拒绝时保留选择，支持重试。在未发送的 Agent 对话中改选模型，只影响该对话。

保存后的指令、能力设置和记忆设置用于该 Agent 的后续执行。已有对话保留创建时选择的模型和明确设置的思考强度；未设置思考强度时使用当前 Agent 默认值。对话中的显式覆盖仍然生效。试运行对话保留自己的快照。上下文分区中的重置规则适用于频道对话，新对话和试运行均使用新历史。

## 记忆权限

新 Agent 默认关闭记忆。旧配置没有记忆字段时，保留对旧版共享记忆的访问。**此 Agent**将记忆单独保存；**旧版共享记忆**引用已有的 profile 共享存储。读写模式的写入位置必须同时位于读取范围中。

关闭模式禁止框架记忆读写。只读模式允许读取，但不提取或新增记录。后台提取和派生结果保留已记录的写入限制，重新开启记忆不会补录此前受限的 turn。关闭记忆或删除 Agent 配置不会删除已存储的记忆。这些设置约束框架记忆操作，文件系统工具访问仍由相应权限控制。

启用**要求记忆可用**后，记忆不可用会阻止执行；否则执行继续，但不使用记忆，并记录降级状态。[Memory 页面](memory.zh.md)介绍已有共享存储的编辑方式，不用于浏览各 Agent 的独立记忆空间。

## 复制和删除

复制会保留配置并生成新 ID，不复制对话、Workspace 文件内容或独立记忆。`self` 引用解析为新 Agent 的独立空间；明确配置的旧版共享引用仍指向共享存储。删除默认 Agent 前，需要先将其他 Agent 设为默认。
