-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path13.html
More file actions
276 lines (276 loc) · 32.3 KB
/
Copy path13.html
File metadata and controls
276 lines (276 loc) · 32.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="CodeClub - OpenCode 代理" />
<meta name="author" content="Jackson" />
<title>OpenCode 代理 - CodeClub</title>
<link rel="icon" type="image/x-icon" href="../../img/logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link rel="stylesheet" href="../../css/main.css" />
<link rel="stylesheet" href="../../css/dark-mode.css" />
<link rel="stylesheet" href="../../css/mobile-optimizations.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.0/marked.min.js"></script>
<style>
.tutorial-page {
max-width: 1200px;
margin: 70px auto 40px;
padding: 0 20px;
display: flex;
gap: 20px;
}
.tutorial-sidebar {
width: 240px;
flex-shrink: 0;
position: sticky;
top: 70px;
max-height: calc(100vh - 90px);
overflow-y: auto;
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-sidebar h3 {
font-size: 15px;
margin: 0 0 12px;
color: var(--text-primary, #1a1a2e);
padding-bottom: 8px;
border-bottom: 2px solid var(--primary, #3b82f6);
}
.tutorial-sidebar a {
display: block;
padding: 5px 8px;
color: var(--text-secondary, #666);
text-decoration: none;
font-size: 13px;
border-radius: 4px;
line-height: 1.4;
}
.tutorial-sidebar a:hover {
background: var(--primary, #3b82f6);
color: #fff;
}
.tutorial-sidebar a.active {
background: var(--primary, #3b82f6);
color: #fff;
font-weight: 600;
}
.tutorial-main {
flex: 1;
min-width: 0;
}
.tutorial-article {
background: var(--bg-secondary, #fff);
border-radius: 8px;
padding: 32px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.tutorial-article h1 {
font-size: 26px;
margin-bottom: 16px;
color: var(--text-primary, #1a1a2e);
border-bottom: 2px solid var(--primary, #3b82f6);
padding-bottom: 12px;
}
.markdown-body {
font-size: 15px;
line-height: 1.8;
color: var(--text-secondary, #333);
}
.markdown-body h1 {
font-size: 24px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 8px;
}
.markdown-body h2 {
font-size: 20px;
border-bottom: 1px solid var(--border, #e5e7eb);
padding-bottom: 6px;
}
.markdown-body h3 {
font-size: 17px;
}
.markdown-body pre {
background: #1e1e2e;
color: #cdd6f4;
padding: 16px;
border-radius: 8px;
overflow-x: auto;
}
.markdown-body code {
font-family: 'Fira Code', 'Cascadia Code', monospace;
font-size: 14px;
}
.markdown-body p code {
background: #f1f5f9;
padding: 2px 6px;
border-radius: 4px;
color: #e83e8c;
}
.markdown-body blockquote {
border-left: 4px solid var(--primary, #3b82f6);
padding: 12px 20px;
margin: 16px 0;
background: #f8fafc;
border-radius: 0 8px 8px 0;
}
.markdown-body img {
max-width: 100%;
border-radius: 8px;
}
.markdown-body table {
border-collapse: collapse;
width: 100%;
margin: 16px 0;
}
.markdown-body table th,
.markdown-body table td {
border: 1px solid var(--border, #e5e7eb);
padding: 8px 12px;
text-align: left;
}
.markdown-body table th {
background: var(--bg-primary, #f8fafc);
font-weight: 600;
}
.markdown-body table tr:nth-child(2n) {
background: var(--bg-primary, #f8fafc);
}
.markdown-body ul,
.markdown-body ol {
padding-left: 24px;
margin: 12px 0;
}
.markdown-body li {
margin: 4px 0;
}
.markdown-body hr {
border: none;
border-top: 1px solid var(--border, #e5e7eb);
margin: 24px 0;
}
.markdown-body a {
color: var(--primary, #3b82f6);
text-decoration: none;
}
.markdown-body a:hover {
text-decoration: underline;
}
.page-navigation {
display: flex;
justify-content: space-between;
margin-top: 24px;
padding-top: 16px;
border-top: 1px solid var(--border, #e5e7eb);
}
.page-nav-link {
color: var(--primary, #3b82f6);
text-decoration: none;
font-weight: 500;
font-size: 14px;
}
.page-nav-link:hover {
text-decoration: underline;
}
.source-link {
margin-top: 16px;
font-size: 13px;
color: var(--text-secondary, #999);
}
.source-link a {
color: var(--primary, #3b82f6);
}
@media (max-width: 768px) {
.tutorial-page {
flex-direction: column;
}
.tutorial-sidebar {
width: 100%;
position: static;
max-height: 200px;
}
}
</style>
</head>
<body>
<nav class="navbar">
<div class="navbar-container">
<a class="navbar-brand" href="../../index.html">
<img src="../../img/logo.png" alt="CodeClub" width="32" height="32" />
<span>CodeClub</span>
</a>
<button class="mobile-menu-toggle" aria-label="切换导航菜单"><span></span><span></span><span></span></button>
<ul class="navbar-nav">
<li><a class="nav-link" href="../../index.html">首页</a></li>
<li><a class="nav-link" href="../../nav.html">网址导航</a></li>
<li><a class="nav-link" href="../../blog/">博客</a></li>
<li><a class="nav-link" href="../../wiki/index.html" target="_blank">WiKi</a></li>
<li><a class="nav-link active" href="../index.html">教程</a></li>
<li><a class="nav-link" href="../../book.html">图书</a></li>
<li><a class="nav-link" href="../../contact.html">联系我</a></li>
<li><a class="nav-link" href="../../about.html">关于我</a></li>
</ul>
</div>
</nav>
<div class="tutorial-page">
<div class="tutorial-sidebar">
<h3>📖 OpenCode</h3>
<a href="0.html">OpenCode 教程</a>
<a href="1.html">OpenCode 简介</a>
<a href="2.html">OpenCode 安装</a>
<a href="3.html">OpenCode 配置</a>
<a href="4.html">OpenCode 第一次使用</a>
<a href="5.html">OpenCode VSCode</a>
<a href="6.html">OpenCode 终端界面</a>
<a href="7.html">OpenCode CLI 使用</a>
<a href="8.html">OpenCode Web 使用</a>
<a href="9.html">OpenCode GitHub</a>
<a href="10.html">OpenCode GitLab</a>
<a href="11.html">OpenCode 工具</a>
<a href="12.html">OpenCode 规则</a>
<a href="13.html" class="active">OpenCode 代理</a>
<a href="14.html">OpenCode 主题</a>
<a href="15.html">OpenCode 快捷键</a>
<a href="16.html">OpenCode 自定义命令</a>
<a href="17.html">OpenCode 格式化工具</a>
<a href="18.html">OpenCode 权限配置</a>
<a href="19.html">OpenCode LSP 服务器配置</a>
<a href="20.html">OpenCode MCP 服务器配置</a>
<a href="21.html">OpenCode Skills</a>
<a href="22.html">OpenCode 自定义工具</a>
</div>
<div class="tutorial-main">
<div class="tutorial-article">
<div class="markdown-body" id="md-content"></div>
<div class="page-navigation">
<a href="12.html" class="page-nav-link">← OpenCode 规则</a>
<a href="14.html" class="page-nav-link">OpenCode 主题 →</a>
</div>
<div class="source-link">原文来源:<a href="https://www.runoob.com" target="_blank">菜鸟教程</a></div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer-content"><p>© 2024 CodeClub. All rights reserved.</p></div>
</footer>
<script src="../../js/dark-mode.js"></script>
<script src="../../js/mobile-menu.js"></script>
<script>
const md = `# OpenCode 代理(Agent)配置详解\n\n\n代理是 OpenCode 中专门化的 AI 助手,每个代理可以配置独立的系统提示词、模型、工具访问权限和行为约束,用于处理特定类型的任务和工作流程。你可以在会话期间随时切换代理,或通过 \`@代理名称\` 的方式直接调用特定代理。\n\n\n\n\n---\n\n\n## 代理类型\n\n\nOpenCode 中的代理分为两种类型,它们的调用方式和职责不同:\n\n\n\n\n \n \n 类型\n 说明\n 切换方式\n \n \n \n \n **主代理(primary)**\n 你直接交互的主要助手,处理主要对话流程。工具访问权限通过 \`permission\` 配置\n 按 \`Tab\` 键循环切换,或使用配置的 \`agent_cycle\` 快捷键\n \n \n **子代理(subagent)**\n 由主代理调用来执行专门任务的助手,运行在独立的子会话中,不影响主会话上下文\n 主代理自动调用,或在消息中用 \`@代理名称\` 手动调用\n \n \n\n\n\n---\n\n\n## 内置代理\n\n\nOpenCode 内置了 4 个开箱即用的代理,以及 3 个自动运行的系统代理:\n\n\n\n\n### 1、Build(主代理)\n\n\n默认的主代理,启用了所有工具,适合需要完整文件操作和系统命令访问权限的日常开发工作。这是你最常使用的代理。\n\n\n\n\n### 2、Plan(主代理)\n\n\n专为代码分析和规划设计的受限代理。默认情况下,以下操作均会触发审批提示(设为 \`ask\`):\n\n\n\n\n\n\n- **file edits**:所有写入、补丁和编辑操作\n\n- **bash**:所有 bash 命令\n\n\n\n当你希望 LLM 分析代码、提出建议或创建执行计划,但不希望它对代码库进行任何实际修改时,请切换到 Plan 代理。\n\n\n\n\n### 3、General(子代理)\n\n\n通用子代理,拥有完整的工具访问权限(todo 工具除外),可以修改文件。适用于研究复杂问题和执行多步骤任务,也可以并行运行多个独立的工作单元。\n\n\n\n\n### 4、Explore(子代理)\n\n\n只读子代理,无法修改任何文件。适合快速查找文件、搜索代码关键字或回答关于代码库结构的问题,速度快且不会产生副作用。\n\n\n\n\n### 5、系统代理(隐藏)\n\n\n以下三个代理由 OpenCode 自动管理,**不会出现在代理切换列表中**,无需也无法手动选择:\n\n\n\n\n \n \n 代理名称\n 职责\n 触发时机\n \n \n \n \n **Compaction**\n 将过长的上下文压缩为较小的摘要,防止超出模型上下文限制\n 上下文长度达到阈值时自动运行\n \n \n **Title**\n 为会话生成简短标题\n 新会话开始后自动运行\n \n \n **Summary**\n 为会话创建摘要\n 需要会话摘要时自动运行\n \n \n\n\n\n---\n\n\n## 代理的使用方式\n\n\n\n### 1、切换主代理\n\n\n在会话期间按 \`Tab\` 键可以在所有主代理之间循环切换,按 \`Shift+Tab\` 反向切换。也可以使用 \`a\` 打开代理列表直接选择。\n\n\n\n\n### 2、调用子代理\n\n\n子代理有两种调用方式:\n\n\n\n\n\n\n- **自动调用**:主代理根据任务性质判断需要某个子代理时,会自动调用并将任务委派给它\n\n- **手动 @ 调用**:在消息中使用 \`@代理名称\` 直接指定由哪个子代理处理\n\n\n\n\n\`\`\`\n@general help me search for this function across the codebase\n\`\`\`\n\n\n\n### 3、在父子会话间导航\n\n\n子代理运行时会创建独立的子会话,可以使用快捷键在父会话和各子会话之间导航:\n\n\n\n\n \n \n 快捷键\n 操作\n \n \n \n \n \`+→\`(\`session_child_cycle\`)\n 向前循环:父会话 → 子会话1 → 子会话2 → … → 父会话\n \n \n \`+←\`(\`session_child_cycle_reverse\`)\n 向后循环:父会话 ← 子会话1 ← 子会话2 ← … ← 父会话\n \n \n \`+↑\`(\`session_parent\`)\n 直接返回父会话\n \n \n\n\n\n---\n\n\n## 两种配置方式\n\n\n代理可以通过 JSON 配置或 Markdown 文件两种方式定义,效果相同,按需选择:\n\n\n\n\n### 方式一:在 opencode.json 中配置\n\n\n\n## 实例\n\n{\n\n "$schema": "https://opencode.ai/config.json",\n\n "agent": {\n\n "build": { // 覆盖内置 build 代理的配置\n\n "mode": "primary",\n\n "model": "anthropic/claude-sonnet-4-20250514",\n\n "prompt": "{file:./prompts/build.txt}", // 从文件加载系统提示词\n\n "tools": {\n\n "write": true,\n\n "edit": true,\n\n "bash": true\n\n }\n\n },\n\n "code-reviewer": { // 自定义子代理\n\n "description": "Reviews code for best practices and potential issues",\n\n "mode": "subagent",\n\n "model": "anthropic/claude-sonnet-4-20250514",\n\n "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",\n\n "tools": {\n\n "write": false,\n\n "edit": false\n\n }\n\n }\n\n }\n\n}\n\n\n\n\n### 方式二:Markdown 文件\n\n\n在以下路径创建 \`.md\` 文件,**文件名即为代理名称**(如 \`review.md\` 对应代理名 \`review\`):\n\n\n\n\n\n\n- **全局:**\`~/.config/opencode/agents/\`(对所有项目有效)\n\n- **项目级:**\`.opencode/agents/\`(仅对当前项目有效)\n\n\n\n\n## 实例\n\n# 文件路径:~/.config/opencode/agents/review.md\n\n---\n\ndescription: Reviews code for quality and best practices\n\nmode: subagent\n\nmodel: anthropic/claude-sonnet-4-20250514\n\ntemperature: 0.1\n\ntools:\n\n write: false\n\n edit: false\n\n bash: false\n\n---\n\nYou are in code review mode. Focus on:\n\n- Code quality and best practices\n\n- Potential bugs and edge cases\n\n- Performance implications\n\n- Security considerations\n\nProvide constructive feedback without making direct changes.\n\n\n\n\n---\n\n\n## 配置选项详解\n\n\n\n### description(描述)\n\n\n代理的功能说明,在代理列表和 \`@\` 自动补全菜单中显示,帮助使用者和主代理判断何时调用该代理。对于自定义代理,此项为**必填**:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "review": {\n\n "description": "Reviews code for best practices and potential issues"\n\n }\n\n }\n\n}\n\n\n\n\n### mode(模式)\n\n\n控制代理的使用方式,可以设置为以下三个值:\n\n\n\n\n \n \n 值\n 说明\n \n \n \n \n \`"primary"\`\n 主代理,出现在 Tab 切换列表中,用于主对话\n \n \n \`"subagent"\`\n 子代理,不在 Tab 切换列表中,由主代理调用或通过 @ 手动调用\n \n \n \`"all"\`\n 同时作为主代理和子代理使用(未指定 mode 时的默认值)\n \n \n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "review": {\n\n "mode": "subagent" // 只作为子代理使用,不出现在主代理切换列表中\n\n }\n\n }\n\n}\n\n\n\n\n### model(模型)\n\n\n为代理指定特定的模型,覆盖全局配置的默认模型。格式为 \`provider/model-id\`。适合针对不同任务使用不同的模型,例如规划任务用较快的小模型,代码生成用较强大的大模型:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "plan": {\n\n "model": "anthropic/claude-haiku-4-20250514" // 规划任务使用速度更快的 Haiku 模型\n\n },\n\n "build": {\n\n "model": "anthropic/claude-sonnet-4-20250514" // 开发任务使用能力更强的 Sonnet 模型\n\n }\n\n }\n\n}\n\n\n\n如果未指定 \`model\`,主代理会使用全局配置的默认模型,子代理会继承调用它的主代理所使用的模型。运行 \`opencode models\` 可查看所有可用模型列表。\n\n\n\n\n### prompt(系统提示词)\n\n\n为代理指定自定义系统提示词,可以直接写字符串,也可以通过 \`{file:./路径}\` 语法从外部文件加载。路径相对于配置文件所在位置:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "review": {\n\n "prompt": "{file:./prompts/code-review.txt}"\n\n // 从 opencode.json 同目录下的 prompts/code-review.txt 读取提示词\n\n // 适合提示词内容较长时,将其单独维护在文本文件中\n\n }\n\n }\n\n}\n\n\n\n\n### temperature(温度)\n\n\n控制模型输出的随机性。值越低输出越确定,适合需要精确结果的任务;值越高输出越多样,适合创意类任务:\n\n\n\n\n \n \n 温度范围\n 输出特点\n 适用场景\n \n \n \n \n 0.0 – 0.2\n 高度集中、确定性强\n 代码分析、规划、调试、审查\n \n \n 0.3 – 0.5\n 平衡,兼顾准确与灵活\n 一般开发任务、文档编写\n \n \n 0.6 – 1.0\n 较有创意和多样性\n 头脑风暴、方案探索、创意写作\n \n \n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "analyze": {\n\n "temperature": 0.1, // 分析任务:高确定性\n\n "prompt": "{file:./prompts/analysis.txt}"\n\n },\n\n "build": {\n\n "temperature": 0.3 // 开发任务:平衡\n\n },\n\n "brainstorm": {\n\n "temperature": 0.7, // 头脑风暴:更有创意\n\n "prompt": "{file:./prompts/creative.txt}"\n\n }\n\n }\n\n}\n\n\n\n未指定 \`temperature\` 时,OpenCode 使用模型的默认值——大多数模型默认为 \`0\`,Qwen 系列模型默认为 \`0.55\`。\n\n\n\n\n### steps(最大步数)\n\n\n控制代理在被强制以纯文本响应之前,最多可以执行的迭代次数(即调用工具的轮数)。适合需要控制成本或防止代理无限循环的场景:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "quick-thinker": {\n\n "description": "Fast reasoning with limited iterations",\n\n "prompt": "You are a quick thinker. Solve problems with minimal steps.",\n\n "steps": 5 // 最多执行 5 次迭代,超出后代理会输出当前进度摘要和剩余建议任务\n\n }\n\n }\n\n}\n\n\n\n未设置 \`steps\` 时,代理会持续迭代直到模型主动停止,或用户手动中断。\n\n\n\n旧版 \`maxSteps\` 字段已弃用,请统一使用 \`steps\`。\n\n\n\n\n### tools(工具访问)\n\n\n控制该代理可以使用哪些工具,将工具名设为 \`true\` 或 \`false\`。代理级配置会**覆盖全局配置**:\n\n\n\n\n## 实例\n\n{\n\n "$schema": "https://opencode.ai/config.json",\n\n "tools": {\n\n "write": true, // 全局:允许写文件\n\n "bash": true // 全局:允许 bash 命令\n\n },\n\n "agent": {\n\n "plan": {\n\n "tools": {\n\n "write": false, // plan 代理:覆盖全局设置,禁用写文件\n\n "bash": false // plan 代理:覆盖全局设置,禁用 bash\n\n }\n\n }\n\n }\n\n}\n\n\n\n也可以使用通配符批量控制工具,例如禁用某个 MCP 服务器的所有工具:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "readonly": {\n\n "tools": {\n\n "mymcp_*": false, // 禁用 mymcp 服务器的所有工具(Glob 匹配)\n\n "write": false,\n\n "edit": false\n\n }\n\n }\n\n }\n\n}\n\n\n\n\n### permission(权限)\n\n\n为代理配置更细粒度的权限控制,可以针对每种操作设置 \`"allow"\`(允许)、\`"ask"\`(询问)或 \`"deny"\`(拒绝):\n\n\n\n\n## 实例\n\n{\n\n "$schema": "https://opencode.ai/config.json",\n\n "permission": {\n\n "edit": "deny" // 全局:默认禁止所有文件编辑\n\n },\n\n "agent": {\n\n "build": {\n\n "permission": {\n\n "edit": "ask" // build 代理:覆盖全局设置,编辑前需要审批\n\n }\n\n }\n\n }\n\n}\n\n\n\n对于 \`bash\` 工具,还可以精细到具体命令,支持 Glob 通配符,且**最后匹配的规则优先**(建议将 \`*\` 通配规则放前面,具体规则放后面):\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "build": {\n\n "permission": {\n\n "bash": {\n\n "*": "ask", // 兜底:所有 bash 命令默认需要审批\n\n "git status *": "allow",// git status 相关命令直接允许(更具体,优先匹配)\n\n "grep *": "allow" // grep 搜索命令直接允许\n\n }\n\n }\n\n }\n\n }\n\n}\n\n\n\n在 Markdown 代理文件中,也可以在 frontmatter 中配置权限:\n\n\n\n\n## 实例\n\n# 文件路径:~/.config/opencode/agents/review.md\n\n---\n\ndescription: Code review without edits\n\nmode: subagent\n\npermission:\n\n edit: deny # 禁止所有文件编辑\n\n bash:\n\n "*": ask # bash 命令默认需要审批\n\n "git diff": allow # 允许 git diff\n\n "git log*": allow # 允许 git log 及其变体\n\n "grep *": allow # 允许 grep 搜索\n\n webfetch: deny # 禁止访问外部 URL\n\n---\n\nOnly analyze code and suggest changes.\n\n\n\n\n### permission.task(任务权限)\n\n\n控制该代理可以通过 Task 工具调用哪些子代理,支持 Glob 匹配。设为 \`"deny"\` 时,子代理会从 Task 工具描述中完全移除,模型不会尝试调用它:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "orchestrator": {\n\n "mode": "primary",\n\n "permission": {\n\n "task": {\n\n "*": "deny", // 兜底:默认禁止调用所有子代理\n\n "orchestrator-*": "allow", // 允许调用 orchestrator- 开头的子代理\n\n "code-reviewer": "ask" // 调用 code-reviewer 前需要用户确认\n\n // 最后匹配的规则优先:orchestrator-planner 同时匹配 * 和 orchestrator-*,\n\n // 因为 orchestrator-* 在后面,所以结果为 allow\n\n }\n\n }\n\n }\n\n }\n\n}\n\n\n\n\n### hidden(隐藏)\n\n\n将子代理从 \`@\` 自动补全菜单中隐藏,仅允许通过 Task 工具以编程方式调用,适合只应由其他代理内部调用的工具代理:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "internal-helper": {\n\n "mode": "subagent", // hidden 仅对 subagent 有效\n\n "hidden": true // 隐藏后,用户的 @ 补全菜单中不会出现此代理,\n\n // 但权限允许时,模型仍可通过 Task 工具调用它\n\n }\n\n }\n\n}\n\n\n\n\n### color(颜色)\n\n\n自定义代理在 UI 中的显示颜色。支持十六进制颜色值或主题颜色关键字(\`primary\`、\`secondary\`、\`accent\`、\`success\`、\`warning\`、\`error\`、\`info\`):\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "creative": {\n\n "color": "#ff6b6b" // 使用十六进制颜色\n\n },\n\n "code-reviewer": {\n\n "color": "accent" // 使用主题颜色关键字\n\n }\n\n }\n\n}\n\n\n\n\n### top_p(采样多样性)\n\n\n\`top_p\` 是 \`temperature\` 之外的另一种控制输出多样性的参数,值范围 0.0 – 1.0,值越低输出越集中,值越高输出越多样:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "brainstorm": {\n\n "top_p": 0.9 // 较高的 top_p,增加输出多样性\n\n }\n\n }\n\n}\n\n\n\n\n### disable(禁用)\n\n\n将代理设为禁用状态,禁用后代理不会出现在选择列表中:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "review": {\n\n "disable": true // 禁用该代理,不影响其他代理\n\n }\n\n }\n\n}\n\n\n\n\n### 其他模型参数\n\n\n代理配置中任何未被识别的字段,都会作为模型参数直接传递给服务提供商。这允许你使用提供商特定的高级功能:\n\n\n\n\n## 实例\n\n{\n\n "agent": {\n\n "deep-thinker": {\n\n "description": "Agent that uses high reasoning effort for complex problems",\n\n "model": "openai/gpt-5",\n\n "reasoningEffort": "high", // OpenAI 推理力度参数,直接透传给 OpenAI API\n\n "textVerbosity": "low" // OpenAI 响应详细程度参数\n\n }\n\n }\n\n}\n\n\n\n透传参数因服务提供商和模型而异,请查阅对应提供商的 API 文档确认可用参数名称。\n\n\n\n\n---\n\n\n## 快速创建代理\n\n\n除了手动编写配置文件,也可以使用交互式命令行工具快速生成代理:\n\n\n\n\n\`\`\`\nopencode agent create\n\`\`\`\n\n\n该命令会依次引导你完成以下步骤:\n\n\n\n\n\n\n- 选择代理的保存位置(全局 \`~/.config/opencode/agents/\` 或项目级 \`.opencode/agents/\`)\n\n- 描述代理的职责和目标\n\n- 自动生成合适的系统提示词和代理标识符\n\n- 选择代理可以访问的工具\n\n- 在选定位置生成包含完整配置的 Markdown 文件\n\n\n\n\n---\n\n\n## 代理示例\n\n\n\n### 文档写作代理\n\n\n\n## 实例\n\n# 文件路径:~/.config/opencode/agents/docs-writer.md\n\n---\n\ndescription: Writes and maintains project documentation\n\nmode: subagent\n\ntools:\n\n bash: false # 禁用 bash,文档写作不需要执行命令\n\n---\n\nYou are a technical writer. Create clear, comprehensive documentation.\n\nFocus on:\n\n- Clear explanations\n\n- Proper structure\n\n- Code examples\n\n- User-friendly language\n\n\n\n\n### 安全审计代理\n\n\n\n## 实例\n\n# 文件路径:~/.config/opencode/agents/security-auditor.md\n\n---\n\ndescription: Performs security audits and identifies vulnerabilities\n\nmode: subagent\n\ntools:\n\n write: false # 只读:不写入文件\n\n edit: false # 只读:不编辑文件\n\n---\n\nYou are a security expert. Focus on identifying potential security issues.\n\nLook for:\n\n- Input validation vulnerabilities\n\n- Authentication and authorization flaws\n\n- Data exposure risks\n\n- Dependency vulnerabilities\n\n- Configuration security issues\n\n\n\n\n---\n\n\n## 常见使用场景\n\n\n\n \n \n 场景\n 推荐代理配置\n \n \n \n \n 日常开发,需要完整工具权限\n 使用内置 **Build** 代理\n \n \n 分析代码、制定方案,不希望修改文件\n 切换到内置 **Plan** 代理\n \n \n 只读查询代码库结构或关键字\n 通过 \`@explore\` 调用内置 **Explore** 子代理\n \n \n 并行执行多个独立任务\n 通过 \`@general\` 调用多个 **General** 子代理并行处理\n \n \n 对代码进行安全性或质量审查\n 自定义只读子代理(禁用 write/edit),设置低温度(0.1)\n \n \n 控制成本,限制 AI 执行步数\n 配置 \`steps\` 参数限制最大迭代次数\n \n \n \n \n \n \n \n\n \n \n [ OpenCode 主题](http://www.runoob.com/opencode/opencode-theme.html)\n \n\n \n \n \n \n \n\n\n\n\n \n \n \n### 点我分享笔记\n\n \n \n \n \n \n \n [取消](https://www.runoob.comjavascript:;)\n\n\n \n \n \n \n \n \n\n\n 分享笔记\n \n \n \n \n \n \n\n 昵称昵称 (必填)\n 邮箱邮箱 (必填)\n 引用地址引用地址\n \n\n \n \n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n 在线实例\n\n\n ·[HTML 实例](https://www.runoob.com/html/html-examples.html)\n\n\n ·[CSS 实例](https://www.runoob.com/css/css-examples.html)\n\n\n ·[JavaScript 实例](https://www.runoob.com/js/js-examples.html)\n\n\n ·[Ajax 实例](https://www.runoob.com/ajx/ajax-examples.html)\n\n\n ·[jQuery 实例](https://www.runoob.com/jquery/jquery-examples.html)\n\n\n ·[XML 实例](https://www.runoob.com/xml/xml-examples.html)\n\n\n ·[Java 实例](https://www.runoob.com/java/java-examples.html)\n\n\n\n\n\n 字符集&工具\n\n\n · [HTML 字符集设置](https://www.runoob.com/charsets/html-charsets.html)\n\n\n · [HTML ASCII 字符集](https://www.runoob.com/tags/html-ascii.html)\n\n\n · [JS 混淆/加密](https://www.jyshare.com/front-end/6939/)\n\n\n · [PNG/JPEG 图片压缩](https://www.jyshare.com/front-end/6232/)\n\n\n · [HTML 拾色器](https://www.runoob.com/tags/html-colorpicker.html)\n\n\n · [JSON 格式化工具](https://www.jyshare.com/front-end/53)\n\n\n · [随机数生成器](https://www.jyshare.com/front-end/6680/)\n\n\n\n\n 最新更新\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-custom-tools.html)\n\n\n ·\n [\n OpenCode Skills ](http://www.runoob.com/opencode/opencode-skills.html)\n\n\n ·\n [\n OpenCode MCP 服... ](http://www.runoob.com/opencode/opencode-mcp.html)\n\n\n ·\n [\n OpenCode LSP 服... ](http://www.runoob.com/opencode/opencode-lsp.html)\n\n\n ·\n [\n OpenCode 权限配置 ](http://www.runoob.com/opencode/opencode-permissions.html)\n\n\n ·\n [\n OpenCode 格式化... ](http://www.runoob.com/opencode/opencode-formatter.html)\n\n\n ·\n [\n OpenCode 自定义... ](http://www.runoob.com/opencode/opencode-commands.html)\n\n\n\n\n 站点信息\n\n\n ·\n [意见反馈](https://www.runoob.commailto:admin@runoob.com)\n\n\n ·\n [免责声明](https://www.runoob.com/disclaimer)\n\n\n ·\n [关于我们](https://www.runoob.com/aboutus)\n\n\n ·\n [文章归档](https://www.runoob.com/archives)\n\n\n\n\n\n\n\n **关注微信**\n\n\n\n \n\n\n\n\n\n\n Copyright © 2013-2026 **[菜鸟教程](https://www.runoob.com//www.runoob.com/)** \n **[runoob.com](https://www.runoob.com//www.runoob.com/)** All Rights Reserved. 备案号:[闽ICP备15012807号-1](https://beian.miit.gov.cn/)\n\n\n\n [ ](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n [](https://www.runoob.comjavascript:void(0))\n\n\n\n#### 微信关注\n\n `;
document.getElementById('md-content').innerHTML = marked.parse(md);
</script>
</body>
</html>