##什么是 Agent 模式?
Agent 模式是 OpenCode 的自主执行功能,允许 AI:
- 无需手动确认即可执行多个步骤
- 独立读取、写入和修改文件
- 运行 shell 命令并分析输出
- 根据上下文和结果做出决策
此模式非常适合需要多个操作的复杂任务。
##启用 Agent 模式
###会话级别激活
使用 agent 模式启动 OpenCode:
bash
opencode --agent
或在会话期间启用:
bash
> /agent on
Agent 模式已启用。我现在可以自主执行多步骤任务。
###配置文件
在配置中默认启用 agent 模式:
bash
# ~/.config/opencode/config.yaml
agent:
enabled: true
require_confirmation: false
max_steps: 50
##Agent 模式如何工作
###逐步执行
当你给 Agent 模式一个任务时,OpenCode 会:
- 规划 - 创建完成任务的策略
- 执行 - 自主运行每个步骤
- 适应 - 根据结果调整计划
- 报告 - 总结完成的工作
###示例:设置项目
bash
> 创建一个带有 TypeScript、ESLint 和 Prettier 的新 React 项目
Agent 模式将:
bash
步骤 1/6: 使用 Vite 创建 React 项目...
> npm create vite@latest my-app -- --template react-ts
✓ 项目已创建
步骤 2/6: 安装依赖...
> cd my-app && npm install
✓ 依赖已安装
步骤 3/6: 添加 ESLint...
> npm install -D eslint @typescript-eslint/parser
✓ ESLint 已安装
步骤 4/6: 配置 ESLint...
创建: .eslintrc.cjs
✓ ESLint 已配置
步骤 5/6: 添加 Prettier...
> npm install -D prettier eslint-config-prettier
✓ Prettier 已安装
步骤 6/6: 创建 Prettier 配置...
创建: .prettierrc
✓ 设置完成!
摘要:
- 创建了 React + TypeScript 项目
- 配置了带有 TypeScript 支持的 ESLint
- 添加了与 ESLint 集成的 Prettier
##安全功能
###确认提示
对于可能危险的操作,Agent 模式会请求确认:
bash
Agent 想要执行:
> rm -rf node_modules && npm install
这将删除并重新安装所有依赖。
继续?[y/N]
###沙箱机制
Agent 模式在安全边界内运行:
- 无法修改项目目录之外的文件
- 无法执行需要 root 权限的命令
- 网络操作受限
- 最大执行步骤数限制以防止无限循环
###撤销支持
所有更改都可以撤销:
bash
> /undo
正在撤销上一个 agent 操作...
✓ 5 个文件已恢复到之前的状态
##最佳使用场景
###项目设置
bash
> 使用 Express、TypeScript、Jest 和 Docker 设置 Node.js API 项目
###重构
bash
> 将 src/components 中的所有类组件转换为使用 hooks 的函数组件
###调试
bash
> 查找并修复应用程序中的内存泄漏
###测试
bash
> 为 auth 模块编写全面的测试,目标覆盖率 90%
###代码迁移
bash
> 将 utils/ 目录从 JavaScript 迁移到 TypeScript
##Agent 模式命令
| 命令 | 描述 |
|------|------|
| /agent on | 启用 agent 模式 |
| /agent off | 禁用 agent 模式 |
| /agent status | 显示当前 agent 设置 |
| /agent pause | 暂停执行 |
| /agent resume | 恢复执行 |
| /agent stop | 停止当前操作 |
##配置选项
bash
agent:
# 启用/禁用 agent 模式
enabled: true
# 文件修改需要确认
require_confirmation: false
# shell 命令需要确认
require_shell_confirmation: true
# 每个任务的最大步骤数
max_steps: 50
# 每步超时时间(秒)
step_timeout: 60
# 允许的目录(相对于项目根目录)
allowed_paths:
- src/
- tests/
- config/
# 被阻止的命令
blocked_commands:
- rm -rf /
- sudo
- shutdown
##Agent 模式技巧
###清晰的指令
明确说明你想要什么:
❌ "设置测试" ✅ "设置带有 TypeScript 支持的 Jest,添加覆盖率报告,并创建示例测试文件"
###设置边界
定义更改的范围:
bash
> 仅重构 src/services/ 中的文件,将 promises 改为 async/await
###审查结果
agent 操作后,审查更改:
bash
> /diff
这将显示 agent 会话期间所做的所有修改。
###使用检查点
对于大型操作,使用检查点:
bash
> 每完成一个主要步骤后创建一个 git 提交
##故障排除
###Agent 卡住
如果 agent 似乎在循环:
bash
> /agent stop
然后提供更具体的指令。
###意外更改
如果 agent 做出了不想要的更改:
bash
> /undo
或使用 git 撤销:
bash
git checkout -- .
###权限错误
确保 agent 具有适当的权限:
bash
> /agent paths add ./new-directory
##下一步
了解更多: