Agents 配置指南
OpenCode Agents 教程:Subagents 与 AGENTS.md 的 7 个检查
直接结论:AGENTS.md 适合写仓库级通用规则,OpenCode agents 适合定义带有独立提示词、模型、工具和安全边界的专门角色。先创建一个角色,用只读任务验证,再在能检查 diff 和回滚路径后开放写入能力。
- 快速结论
- OpenCode agents
- 2026-07-26 已核查
- AGENTS.md + subagents
- 约 15 分钟
- 指南
快速结论
OpenCode agents vs AGENTS.md
直接结论:AGENTS.md 适合写仓库级通用规则,OpenCode agents 适合定义带有独立提示词、模型、工具和安全边界的专门角色。先创建一个角色,用只读任务验证,再在能检查 diff 和回滚路径后开放写入能力。

| 判断项 | 使用 AGENTS.md | 使用 OpenCode agent |
|---|---|---|
| 范围 | 仓库内所有助手 | 具名专门角色 |
| 适合内容 | 项目规则、命令、路径、禁区 | 角色提示词、模型、工具、产出格式 |
| 变化频率 | 较低且长期有效 | 可随工作流调整 |
| 风险控制 | 共享基线 | 窄权限和任务路由 |
| 示例 | 提交前运行测试 | 只审查安全敏感 diff |
1. 先判断该写 AGENTS.md 还是 agent
AGENTS.md 适合沉淀长期有效的仓库规则,例如测试命令、代码风格、生成目录、review 要求和项目禁区。它不适合塞进所有专门工作流,否则共享规则会越来越难维护,也会限制无关任务。
OpenCode agents 更适合角色化行为。只要任务需要更窄的提示词、不同模型、受限工具集,或固定角色如 reviewer、planner、docs-editor、migration-checker,就应该考虑独立 agent。

2. 只有真正降低复杂度时才使用 subagents
subagent 适合处理可分离的问题:检查大目录、审阅高风险 diff、调研 API 或整理迁移清单。如果只是一次很小的修改,额外代理通常只会增加沟通成本。
有效的角色必须有明确产出。例如 review agent 返回带文件位置的发现,docs agent 返回受影响页面和补丁计划。不要用 helper、expert 这类宽泛名称。
3. 按角色风险选择模型和工具
代码审查、架构判断、安全相关分析和迁移规划可以使用推理能力更强的模型;摘要、格式化说明和简单文档草稿可以用更快或更便宜的模型。目标不是让每个 agent 都最强,而是让每个角色稳定可预期。
工具权限应尽量比主会话更窄。文档 agent 可能只需要读写 docs,测试 agent 可能需要 shell 但不需要访问密钥文件,研究 agent 可能需要联网但不需要写仓库。
4. 配置要可审查,不能包含密钥
团队配置可以进仓库,但 API key、provider token、私有 endpoint 和服务凭据不能进仓库。需要 token 的工具只记录环境变量名和最小 scope。
角色名称要稳定可读,例如 reviewer 或 docs-editor。实验角色可以保持禁用,或明确说明什么时候才使用,不要默认塞进所有会话。
5. 真实修改前先做低风险验证
第一次验证不要碰生产代码。可以让 agent 解释文件、列出假设、审阅一个小 diff,确认它遵守角色、范围和输出格式。
之后再允许一个小写入任务并检查 Git diff。如果它改了无关文件、忽略说明、执行错误命令或说不清改动,就先修提示词和权限边界。

- 命名角色使用 reviewer、planner、docs-editor 等清晰名称。
- 写清产出说明 agent 应该返回什么、禁止做什么。
- 选择模型让推理深度和成本匹配角色风险。
- 限制工具从能完成任务的最小工具集开始。
- 只读验证先做解释、检查或审阅。
- 检查小 diff首个写入任务干净后再扩大使用。
- 记录规则写清什么时候用 agent,什么时候主会话足够。
6. 避免常见配置错误
最常见错误是还没验证一个角色是否有用,就先创建一堆 agents。每个角色都会增加选择成本,也可能造成任务路由混乱。
另一个错误是把 AGENTS.md 和 agent 规则混在一起。仓库事实放 AGENTS.md,角色行为放 agent;同一规则写两处很容易漂移。
| 现象 | 可能原因 | 修复方式 |
|---|---|---|
| agent 不像指定角色 | 提示词过宽 | 加入明确产出格式和禁止范围 |
| 改了错误文件 | 工具边界太宽 | 限制路径、工具或审批规则 |
| 反复给泛泛建议 | 缺少仓库上下文 | 把长期项目事实放进 AGENTS.md |
| 上下文消耗过大 | 启用过多角色或工具 | 关闭不用的 agents 和宽泛 MCP |
| 团队无法复现 | 密钥或本地路径隐含 | 记录变量、scope 和验证命令 |
7. 谨慎组合 MCP、hooks 和 skills
agents 与窄集成组合时价值更高。reviewer 可以用只读 GitHub 或 issue MCP,release agent 可以依赖 hooks 跑检查,docs agent 可以复用写作 skill。集成应该服务角色,而不是让角色无限变宽。
任何能修改文件、issue、数据库或生产系统的集成都应逐层开放:先验证 agent 提示词,再验证工具,再验证写入路径。
agent 边界示例
{
"agents": {
"reviewer": {
"model": "provider/reasoning-model",
"description": "Review diffs and return concrete findings only",
"tools": ["read", "grep"]
},
"docs-editor": {
"model": "provider/fast-model",
"description": "Update documentation after source changes",
"tools": ["read", "edit"]
}
}
}团队配置可以进仓库,但 API key、provider token、私有 endpoint 和服务凭据不能进仓库。需要 token 的工具只记录环境变量名和最小 scope。
OpenCode agents 常见问题
OpenCode agents 是什么?
它们是用于 review、规划、文档、调研或迁移检查等任务的具名专门角色。
OpenCode 的 AGENTS.md 放哪里?
适用于整个项目的规则放仓库根目录;只有子目录规则明显不同时再局部补充。
agents 会替代 skills 吗?
不会。skills 是流程知识,agents 是角色边界;两者可以组合。
每个项目都需要 subagents 吗?
不需要。只有重复任务真的受益于专门角色时才添加。
如何让 OpenCode agents 更安全?
密钥不进配置、先只读验证、限制工具和路径、检查首个 diff,并记录允许使用的场景。
已核查的官方来源