# Agent 模板目录

LibreFang 提供 **32 个 Agent 模板**，来自 [registry](https://github.com/librefang/librefang-registry/tree/main/agents)。`assistant` 模板已预装，其他模板可从 Dashboard 安装。每个模板都是一个可直接生成的 `agent.toml` 清单文件，位于 `agents/` 目录下。

所有模板均使用 `provider = "default"` 和 `model = "default"`，即继承你在 `config.toml` 中配置的默认供应商和模型。你可以在生成时覆盖这些设置。

## 快速开始

通过 CLI 生成任意模板：

```bash
librefang spawn orchestrator
librefang spawn coder
librefang spawn --template agents/writer/agent.toml
```

通过 REST API 生成：

通过内置模板名称生成：

```bash
curl -X POST http://localhost:4545/api/agents \
  -H "Content-Type: application/json" \
  -d '{"template": "coder"}'
```

生成时覆盖模型：

```bash
curl -X POST http://localhost:4545/api/agents \
  -H "Content-Type: application/json" \
  -d '{"template": "writer", "model": "claude-sonnet-4-20250514"}'
```

向运行中的 Agent 发送消息：

```bash
curl -X POST http://localhost:4545/api/agents/{id}/message \
  -H "Content-Type: application/json" \
  -d '{"content": "Write unit tests for the auth module"}'
```

---

## 模板分类

模板按使用场景组织。所有模板都使用默认模型供应商。下表列出每个 Agent 的描述、标签、temperature 和最大输出 token 数。点击 Agent 名称可在 registry 中查看完整的 `agent.toml` 清单。

### 软件工程

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [coder](https://github.com/librefang/librefang-registry/tree/main/agents/coder) | 资深软件工程师。读、写、分析代码。 | python、write code、implement feature | 0.3 | 8192 |
| [code-reviewer](https://github.com/librefang/librefang-registry/tree/main/agents/code-reviewer) | 资深代码评审员。按生产标准审查 PR、识别问题、给出改进建议。 | best-practices、code review、review this pr | 0.3 | 4096 |
| [debugger](https://github.com/librefang/librefang-registry/tree/main/agents/debugger) | 调试专家。追踪 bug、分析栈、做根因分析。 | -- | 0.2 | 4096 |
| [test-engineer](https://github.com/librefang/librefang-registry/tree/main/agents/test-engineer) | QA 工程师。设计测试策略、编写测试、验证正确性。 | validation、test plan、write tests | 0.3 | 4096 |
| [architect](https://github.com/librefang/librefang-registry/tree/main/agents/architect) | 系统架构师。设计软件架构、评估权衡、产出技术规范。 | planning、system design、software architecture | 0.3 | 8192 |
| [security-auditor](https://github.com/librefang/librefang-registry/tree/main/agents/security-auditor) | 安全专家。审查代码漏洞、检查配置、做威胁建模。 | vulnerability、security audit、vulnerability review | 0.2 | 4096 |
| [ops](https://github.com/librefang/librefang-registry/tree/main/agents/ops) | DevOps Agent。监控系统、跑诊断、管理部署。 | -- | 0.2 | 2048 |
| [devops-lead](https://github.com/librefang/librefang-registry/tree/main/agents/devops-lead) | DevOps 负责人。负责 CI/CD、基础设施、部署、监控、事件响应。 | -- | 0.2 | 4096 |
| [planner](https://github.com/librefang/librefang-registry/tree/main/agents/planner) | 项目规划师。制定项目计划、拆分 epic、估算工作量、识别风险与依赖。 | -- | 0.3 | 8192 |

### 研究与分析

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [researcher](https://github.com/librefang/librefang-registry/tree/main/agents/researcher) | 调研 Agent。抓取网页内容并综合信息。 | web、web research、investigate topic | 0.5 | 4096 |
| [academic-researcher](https://github.com/librefang/librefang-registry/tree/main/agents/academic-researcher) | 学术调研 Agent。检索学术论文、总结发现、生成文献综述。 | science、academic research、paper search | 0.3 | 8192 |
| [analyst](https://github.com/librefang/librefang-registry/tree/main/agents/analyst) | 数据分析师。处理数据、生成洞察、撰写报告。 | -- | 0.4 | 4096 |
| [data-scientist](https://github.com/librefang/librefang-registry/tree/main/agents/data-scientist) | 数据科学家。分析数据集、构建模型、做可视化和统计分析。 | -- | 0.3 | 4096 |

### 写作与文档

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [writer](https://github.com/librefang/librefang-registry/tree/main/agents/writer) | 内容作者。创作文档、文章和技术写作。 | -- | 0.7 | 4096 |
| [doc-writer](https://github.com/librefang/librefang-registry/tree/main/agents/doc-writer) | 技术作者。编写文档、README、API 文档、教程和架构指南。 | -- | 0.4 | 8192 |
| [translator](https://github.com/librefang/librefang-registry/tree/main/agents/translator) | 多语言翻译 Agent，用于文档翻译、本地化和跨文化沟通。 | translation、languages、localization、multilingual、communication | 0.3 | 8192 |

### 商业与沟通

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [customer-support](https://github.com/librefang/librefang-registry/tree/main/agents/customer-support) | 客户支持 Agent，负责工单处理、问题解决与客户沟通。 | support、customer-service、tickets、helpdesk、communication | 0.3 | 4096 |
| [sales-assistant](https://github.com/librefang/librefang-registry/tree/main/agents/sales-assistant) | 销售助手 Agent，负责 CRM 更新、外联起草、销售漏斗管理与商机跟踪。 | deals、deal tracking、leads | 0.5 | 4096 |
| [recruiter](https://github.com/librefang/librefang-registry/tree/main/agents/recruiter) | 招聘 Agent，负责简历筛选、候选人外联、JD 写作和招聘漏斗管理。 | hr、candidate screening、recruiting outreach | 0.4 | 4096 |
| [email-assistant](https://github.com/librefang/librefang-registry/tree/main/agents/email-assistant) | 邮件分流、起草、排期与收件箱管理 Agent。 | email、communication、triage、drafting、scheduling | 0.4 | 8192 |
| [meeting-assistant](https://github.com/librefang/librefang-registry/tree/main/agents/meeting-assistant) | 会议记录、行动项、议程准备与跟进管理 Agent。 | meetings、notes、action-items、agenda、follow-up | 0.3 | 8192 |
| [social-media](https://github.com/librefang/librefang-registry/tree/main/agents/social-media) | 社交媒体内容创作、排期与互动策略 Agent。 | social-media、content、marketing、engagement、scheduling | 0.7 | 4096 |

### 个人与生活

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [personal-finance](https://github.com/librefang/librefang-registry/tree/main/agents/personal-finance) | 个人理财 Agent，负责预算追踪、支出分析、储蓄目标与财务规划。 | money、budget planning、expense analysis | 0.2 | 8192 |
| [legal-assistant](https://github.com/librefang/librefang-registry/tree/main/agents/legal-assistant) | 法律助手 Agent，负责合同审查、法律研究、合规检查与文件起草。 | documents、legal review、contract review | 0.2 | 8192 |
| [health-tracker](https://github.com/librefang/librefang-registry/tree/main/agents/health-tracker) | 健康追踪 Agent，负责健康指标、用药提醒、健身目标与生活习惯。 | tracking、health tracking、fitness tracking | 0.3 | 4096 |
| [travel-planner](https://github.com/librefang/librefang-registry/tree/main/agents/travel-planner) | 行程规划 Agent，负责行程编排、预订调研、预算估算与旅行物流。 | vacation、trip itinerary、travel plan | 0.5 | 8192 |
| [home-automation](https://github.com/librefang/librefang-registry/tree/main/agents/home-automation) | 智能家居控制 Agent，负责 IoT 设备管理、自动化规则与家居监控。 | home、smart home、home automation | 0.2 | 4096 |
| [recipe-assistant](https://github.com/librefang/librefang-registry/tree/main/agents/recipe-assistant) | 烹饪助手，帮助处理菜谱、餐计划、食材替换和分量调整。 | food、recipe helper、meal planner | 0.5 | 4096 |
| [tutor](https://github.com/librefang/librefang-registry/tree/main/agents/tutor) | 教学讲解 Agent，用于学习辅导和教育内容创作。 | education、teaching、tutoring、learning、explanation | 0.5 | 8192 |

### 系统

| 模板 | 描述 | 标签 | Temp | Max Tokens |
|------|------|------|------|------------|
| [assistant](https://github.com/librefang/librefang-registry/tree/main/agents/assistant) | 通用助手 Agent。日常任务、问答与对话的默认 Agent。 | general、assistant、default、multipurpose、conversation | 0.5 | 8192 |
| [hello-world](https://github.com/librefang/librefang-registry/tree/main/agents/hello-world) | 友好的问候 Agent，可读取文件、搜索网页、回答日常问题。 | -- | 0.6 | 4096 |
| [orchestrator](https://github.com/librefang/librefang-registry/tree/main/agents/orchestrator) | 元 Agent，分解复杂任务、委派给专家 Agent 并综合结果。 | -- | 0.3 | 8192 |

---

## 理解 Temperature

`temperature` 参数控制 Agent 响应的确定性与创造性。模板会根据每个 Agent 的用途设置合适的值：

- **0.2** -- 精确且确定。用于对准确性要求最高的 Agent：`debugger`、`ops`、`security-auditor`、`devops-lead`、`personal-finance`、`legal-assistant`、`home-automation`。
- **0.3** -- 分析型，略带灵活性。大部分工程与研究类 Agent：`coder`、`code-reviewer`、`test-engineer`、`architect`、`planner`、`data-scientist`、`academic-researcher`、`customer-support`、`translator`、`health-tracker`、`meeting-assistant`、`orchestrator`。
- **0.4** -- 均衡的分析型。`analyst`、`doc-writer`、`email-assistant`、`recruiter`。
- **0.5** -- 通用。`assistant`、`researcher`、`tutor`、`recipe-assistant`、`sales-assistant`、`travel-planner`。
- **0.6** -- 对话式。`hello-world`。
- **0.7** -- 创意型。`writer`、`social-media`。

---

## 自定义模板

`agents/custom/` 目录保留给你自己的 Agent 模板。按照以下清单格式创建新的 `agent.toml` 文件。

### 清单格式

```toml
# 必填字段
name = "my-agent"
version = "0.1.0"
description = "What this agent does in one sentence."
author = "your-name"
module = "builtin:chat"

# 可选元数据
tags = ["tag1", "tag2"]

# 模型配置（必填）
[model]
provider = "default"                 # 继承 config.toml 中的默认供应商
model = "default"                    # 继承 config.toml 中的默认模型
max_tokens = 4096                    # 每次响应的最大输出 token 数
temperature = 0.3                    # 创造性（0.0 = 确定性，1.0 = 创造性）
system_prompt = """Your agent's personality, capabilities, and instructions go here.
Be specific about what the agent should and should not do."""

# To use a specific provider instead of default, set the provider and model explicitly:
# provider = "gemini"
# model = "gemini-2.5-flash"
# api_key_env = "GEMINI_API_KEY"

# Optional fallback model (used when primary is unavailable)
# [[fallback_models]]
# provider = "groq"
# model = "llama-3.3-70b-versatile"
# api_key_env = "GROQ_API_KEY"

# 可选调度（用于自主/后台 Agent）
[schedule]
periodic = { cron = "every 5m" }                                     # 定期执行
# continuous = { check_interval_secs = 120 }                         # 持续循环
# proactive = { conditions = ["event:agent_spawned"] }               # 事件触发

# 资源限制
[resources]
max_llm_tokens_per_hour = 150000    # 每小时 Token 预算

# 能力授权（最小权限原则）
[capabilities]
tools = ["file_read", "file_write", "file_list", "shell_exec",
         "memory_store", "memory_recall", "web_fetch",
         "agent_send", "agent_list", "agent_spawn", "agent_kill"]
network = ["*"]                     # 网络访问模式
memory_read = ["*"]                 # Agent 可读取的记忆命名空间
memory_write = ["self.*"]           # Agent 可写入的记忆命名空间
agent_spawn = true                  # 此 Agent 是否可以生成其他 Agent
agent_message = ["*"]               # 可以向哪些 Agent 发送消息
shell = ["python *", "cargo *"]     # 允许的 Shell 命令模式（白名单）

# 命名共享工作区（可选）。
# 多个 Agent 可以声明同一路径 — 它们共享该目录而不会产生 identity 文件冲突。
# 路径相对于 workspaces_dir。
# [workspaces]
# library = { path = "shared/library", mode = "rw" }
# archive = { path = "shared/archive", mode = "r"  }
```

### 可用工具

| 工具 | 描述 |
|------|------|
| `file_read` | 读取文件内容 |
| `file_write` | 写入/创建文件 |
| `file_list` | 列出目录内容 |
| `shell_exec` | 执行 Shell 命令（受 `shell` 白名单限制） |
| `memory_store` | 将键值数据持久化到记忆中 |
| `memory_recall` | 从记忆中检索数据 |
| `web_fetch` | 从 URL 获取内容（具有 SSRF 防护） |
| `agent_send` | 向另一个 Agent 发送消息 |
| `agent_list` | 列出所有运行中的 Agent |
| `agent_spawn` | 生成一个新 Agent |
| `agent_kill` | 终止一个运行中的 Agent |

### 自定义 Agent 提示

1. **从最小配置开始**。仅授予 Agent 实际需要的工具和能力。之后随时可以添加更多。
2. **编写清晰的系统提示**。系统提示是模板中最重要的部分。明确说明 Agent 的角色、方法论、输出格式和限制。
3. **设置合适的 temperature**。精确/分析类任务使用 0.2，均衡任务使用 0.5，创意类任务使用 0.7 及以上。
4. **使用 Shell 白名单**。永远不要授予 `shell = ["*"]`。白名单指定具体的命令模式，如 `shell = ["python *", "cargo test *"]`。
5. **设置 Token 预算**。使用 `max_llm_tokens_per_hour` 防止成本失控。从 100,000 开始，根据使用情况调整。
6. **使用记忆实现连续性**。授予 `memory_store` 和 `memory_recall` 以便 Agent 可以跨会话持久化上下文。

---

## Agent 工作区

每个 Agent 在 `~/.librefang/workspaces/agents/<name>/` 下都有一个私有 home 目录。内核在首次生成时写入 identity 文件：

```
workspaces/agents/librarian/
├── .identity/          ← identity 文件（由内核管理）
│   ├── SOUL.md         ← 人格与使命
│   ├── IDENTITY.md     ← 视觉身份（emoji、颜色、风格）
│   ├── USER.md         ← 学到的用户偏好
│   ├── TOOLS.md        ← 工具与环境说明
│   ├── MEMORY.md       ← 长期记忆
│   ├── AGENTS.md       ← 行为规范
│   └── BOOTSTRAP.md    ← 首次运行协议
├── sessions/           ← 对话历史
├── memory/             ← 每日记忆日志
├── data/               ← Agent 专属数据
├── output/             ← 生成的输出文件
├── skills/             ← Agent 专属技能
└── logs/               ← Agent 日志
```

你可以自由编辑 `.identity/` 下的任何文件 — 内核使用 `create_new`，永远不会覆盖你的修改。

### 共享工作区

使用 `[workspaces]` 让多个 Agent 共享一个目录，且不会发生任何碰撞。每个 Agent 保留自己的私有 home；只有声明的共享路径才被共享。

```toml
# librarian/agent.toml
[workspaces]
library = { path = "shared/library", mode = "rw" }

# researcher/agent.toml
[workspaces]
library = { path = "shared/library", mode = "r" }   # 只读
```

内核在 spawn 时创建目录，并将解析后的绝对路径注入 `TOOLS.md`：

```
## Shared Workspaces
- @library → /home/you/.librefang/workspaces/shared/library (read-write)
```

**访问模式**：`rw`（读写，默认）或 `r`（只读）。路径相对于 `workspaces_dir`，不能是绝对路径或包含 `..`。

#### 外部挂载（`mount`）

用 `mount` 替代 `path`，可以挂载 `workspaces_dir` 外已经存在的目录——比如 Obsidian vault 或某个项目树：

```toml
# agent.toml
[workspaces]
vault = { mount = "/Users/me/Documents/Obsidian", mode = "r" }
```

约束：

- `mount` 必须是已存在的绝对路径。内核**不会**替 agent 创建外部目录。
- 路径 canonicalize 后必须是 `config.toml` 顶层 `allowed_mount_roots` 中某条目的前缀。**白名单为空（默认）时所有 `mount` 都会被拒绝**——安全的默认行为。
- 同一条声明里 `path` 与 `mount` 互斥。

```toml
# config.toml —— 启用上面示例所需
allowed_mount_roots = [
  "/Users/me/Documents",
]
```

只读模式（`mode = "r"`）对挂载点的执行方式与共享 workspace 一致：写工具调用会被内核拒绝。

### 实时上下文（`context.md`）

如果 agent workspace 里有 `context.md` 文件，**每个 agent 回合都会重新读取**，并以 `## Live Context` section 注入 system prompt。这让外部工具（cron 任务、脚本、dashboard）能把新数据 — 行情、项目状态、值班表 — 推给 agent，无需重启。

**路径解析**：优先 `{workspace}/.identity/context.md`；为兼容未迁移的 workspace，回退到 `{workspace}/context.md`。

**行为：**
- 每回合读一次，prompt 组装前。
- 读取上限 32 KB；超大文件截断并打 warn。
- 之前能读到、现在突然失败（比如外部进程在替换文件）时，使用上次缓存的内容，避免对话中途丢失上下文。
- 文件不存在时不添加 `## Live Context` section。

**关闭实时重读**：`agent.toml` 里设 `cache_context = true` 恢复 2026 年 4 月前的行为 — `context.md` 在 session 启动时读一次并缓存到 session 结束。

```toml
# agent.toml
cache_context = true   # 默认 false（每回合重读）
```

### 懒加载 tool（`tool_search` / `tool_load`）

默认 agent 回答 "hi" 之前要把每个内置 tool 的 JSON schema 都发出去 —— ~75 个 tool × ~90 token ≈ 6,000 token 每回合白送。懒加载把它砍到大多数回合实际会用的 ~19 个 tool，长尾用两个 meta-tool 按需取：

- **`tool_search(query)`** — 在 catalog（名 + 描述 + 提示）做关键字匹配。返回匹配的 tool 和它们的一行提示。
- **`tool_load(name)`** — 取某个 tool 的完整 schema。该 tool 从下一回合开始可调（schema 被加入到之后的请求里）。

完整 catalog 仍以"每行一个 tool 的提示"列表渲染进 system prompt，模型知道有哪些 tool 而不必为完整 schema 付费。**runtime 分类为 "always native" 的 tool**（file_read、shell_exec、cron tools 等）每回合都带完整 schema —— 没必要让模型 `tool_load` 它几乎肯定会用的东西。

如果某个模型对 `tool_search` 链不擅长，按 agent 关掉：

```toml
# agent.toml —— 关闭懒加载；每回合发送所有 tool schema
lazy_tools = false
```

---

## 生成 Agent

### CLI

```bash
# 按模板名称生成
librefang spawn coder

# 使用自定义名称生成
librefang spawn coder --name "backend-coder"

# 从 TOML 文件路径生成
librefang spawn --template agents/custom/my-agent.toml

# 列出运行中的 Agent
librefang agents

# 发送消息
librefang message <agent-id> "写一个解析 TOML 文件的函数"

# 终止 Agent
librefang kill <agent-id>
```

### REST API

```bash
# 从模板生成
POST /api/agents
{"template": "coder"}

# 生成并覆盖配置
POST /api/agents
{"template": "coder", "name": "backend-coder", "model": "deepseek-chat"}

# 发送消息
POST /api/agents/{id}/message
{"content": "实现 auth 模块"}

# WebSocket（流式）
WS /api/agents/{id}/ws

# 列出 Agent
GET /api/agents

# 删除 Agent
DELETE /api/agents/{id}
```

### OpenAI 兼容 API

```bash
# 通过 OpenAI 兼容端点使用任意 Agent
POST /v1/chat/completions
{
  "model": "librefang:coder",
  "messages": [{"role": "user", "content": "用 Rust 写一个 HTTP 服务器"}],
  "stream": true
}

# 列出可用模型
GET /v1/models
```

### Orchestrator 委派

`orchestrator` Agent 可以通过程序方式生成并委派任务给其他 Agent：

```
用户："构建一个带测试和文档的 REST API"

Orchestrator：
1. agent_send(coder, "实现 REST API 端点")
2. agent_send(test-engineer, "为这些端点编写集成测试")
3. agent_send(doc-writer, "为 API 端点撰写文档")
4. 将所有结果综合成最终报告
```

---

## 环境变量

所有 Agent 模板都使用 `provider = "default"` 和 `model = "default"`。Agent 实际使用的模型取决于你在 `~/.librefang/config.toml` 中配置的供应商和模型。

根据要使用的供应商，设置以下一个或多个 API 密钥：

| 变量 | 供应商 |
|----------|----------|
| `GROQ_API_KEY` | Groq |
| `GEMINI_API_KEY` | Google Gemini |
| `OPENAI_API_KEY` | OpenAI |
| `ANTHROPIC_API_KEY` | Anthropic |
| `DEEPSEEK_API_KEY` | DeepSeek |

在 `~/.librefang/config.toml` 中配置默认供应商和模型：

```toml
[model]
provider = "groq"                    # 或 "gemini"、"openai"、"anthropic"、"deepseek"
model = "llama-3.3-70b-versatile"    # 对应供应商的模型标识符
api_key_env = "GROQ_API_KEY"         # 保存 API 密钥的环境变量
```

任何未显式指定 model 的 Agent，生成时都会使用这份默认配置。

---

## Agent Manifest 字段参考

`agent.toml` 接受不少在标准 quick-start 模板里看不到的顶层字段。把完整集列出来,知道字段名时就能找到。除非标"必填",否则全部可选。

### 工具 / skill 范围

```toml
tool_allowlist = ["web_search", "web_fetch", "file_read", "file_write"]
tool_blocklist = ["shell_exec"]
tools_disabled = false             # 显式总开关 —— 比所有别的设置优先
allowed_plugins = ["truncate", "redact"]   # 插件名;空 = 所有可用插件
mcp_servers    = ["github", "linear"]     # MCP server 名;空 = 所有已连接 server
skills_disabled = false            # skill 的显式总开关
```

| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `tool_allowlist` | `Vec<string>` | `[]`(= 所有工具) | 此 agent 能调的工具白名单。空列表 = 不限制。 |
| `tool_blocklist` | `Vec<string>` | `[]` | 此 agent **不能**调的工具。在 `tool_allowlist` **之后**应用 —— 同时在两个列表里的会被禁。 |
| `tools_disabled` | bool | `false` | 总开关 —— `true` 时无视 allowlist / profile,agent 没有任何工具。 |
| `allowed_plugins` | `Vec<string>` | `[]`(= 所有插件) | 此 agent 的插件白名单。 |
| `mcp_servers` | `Vec<string>` | `[]`(= 所有 server) | MCP server 白名单。某 corp server 有危险工具,只想给少数 agent 用时实用。 |
| `skills_disabled` | bool | `false` | skill 总开关。 |

### 身份 & spawn 行为

```toml
generate_identity_files = true     # 首次 spawn 时创建 SOUL.md / IDENTITY.md / TOOLS.md
inherit_parent_context  = true     # 子 agent 默认继承父 agent context
auto_evolve             = true     # 每轮后台跑 skill-evolution review
is_hand                 = false    # 由 Hand spawn 时自动置位
pinned_model            = "anthropic/claude-sonnet-4"   # Stable kernel 模式下锁定模型
```

| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `generate_identity_files` | bool | `true` | 首次 spawn 时在 `.identity/` 创建 `SOUL.md` / `IDENTITY.md` / `TOOLS.md` / `USER.md`。临时 agent 不需要进化身份时设 `false`。 |
| `inherit_parent_context` | bool | `true` | 此 agent 作为 workflow 子 agent 跑时,继承父 agent 的会话上下文。`false` 给一个干净的上下文窗。 |
| `auto_evolve` | bool | `true` | 每轮 agent 之后跑后台 skill-evolution review(找重复模式提议新 skill)。禁掉就让 skill 库冻结。 |
| `is_hand` | bool | `false` | Hand spawn 此 agent 时自动填。不要手动设。 |
| `pinned_model` | `Option<string>` | `None` | kernel 在 **Stable** 模式时,无视全局默认用此模型。Normal 模式无效。 |

### Channel & exec policy 覆盖(per-agent)

```toml
[channel_overrides]
dm_policy = "always"
group_policy = "trigger_only"
group_trigger_patterns = ["(?i)\\bmy-bot\\b"]

[exec_policy]
shell_allowlist = ["git", "cargo"]
deny = ["rm -rf"]
```

| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `[channel_overrides]` | `Option<ChannelOverrides>` | `None`(继承 channel 级) | per-agent 的 `dm_policy` / `group_policy` / `model` / `system_prompt` 等覆盖。解析顺序:agent 级 → channel 级 → 内置默认。完整 schema 见 [Channels](/zh/integrations/channels#channel-overrides)。 |
| `[exec_policy]` | `Option<ExecPolicy>` | `None`(继承 kernel 默认) | per-agent shell / exec policy 覆盖。可以是字符串简写(`"strict"` / `"trusted"`)或带 `shell_allowlist` / `deny` / `cwd_allowlist` 的完整表。 |

### 响应整形与增强

```toml
show_progress = true
response_format = "json_object"   # 或 { type = "json_schema", schema = "..." }
web_search_augmentation = "auto"  # "off" | "auto" | "always"

[[context_injection]]
name = "rules"
content = "保持简洁。永远不用 emoji。"
position = "system"
```

| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `show_progress` | bool | `true` | 在 channel 回复里显示工具执行进度(如"🔧 running shell_exec…")。生产/面向客户的 agent 关掉。 |
| `response_format` | `Option<ResponseFormat>` | `None` | 约束 LLM 输出。选项:`"text"`、`"json_object"`、或 `{ type = "json_schema", schema = … }`。Provider 必须支持结构化输出(OpenAI / Gemini / Mistral)。 |
| `web_search_augmentation` | enum | provider 默认 | 模型本身没工具支持时,自动把 web 搜索结果注入 prompt。`"off"` / `"auto"` / `"always"`。 |
| `[[context_injection]]` | `Vec<ContextInjection>` | `[]` | 每次会话开始合并进 prompt 的静态片段。每条有 `name`、`content`、`position`(`system` / `before_user` / `after_reset`)、可选 `condition` 表达式。 |
