@wwkit/harness 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/agents/extract.md +2 -14
  2. package/agents/lint.md +367 -0
  3. package/agents/pyit.md +361 -0
  4. package/agents/pyut.md +347 -0
  5. package/agents/query.md +2 -14
  6. package/agents/revise.md +2 -14
  7. package/agents/work.md +151 -0
  8. package/commands/git-sync.md +218 -0
  9. package/commands/net-port.md +364 -0
  10. package/commands/pyit.md +6 -0
  11. package/commands/pyut.md +6 -0
  12. package/commands/resume.md +104 -0
  13. package/package.json +2 -2
  14. package/skills/better-skill/SKILL.md +124 -0
  15. package/skills/blame-skill/SKILL.md +201 -0
  16. package/skills/lint-ai-fix/SKILL.md +141 -0
  17. package/skills/lint-config-setup/SKILL.md +106 -0
  18. package/skills/lint-config-setup/references/languages/js.md +110 -0
  19. package/skills/lint-config-setup/references/languages/py.md +89 -0
  20. package/skills/lint-env-ensure/SKILL.md +92 -0
  21. package/skills/lint-env-ensure/references/config.md +65 -0
  22. package/skills/lint-language-detect/SKILL.md +79 -0
  23. package/skills/lint-language-detect/references/detect-language.js +65 -0
  24. package/skills/lint-rules-analyze/SKILL.md +129 -0
  25. package/skills/lint-suitability-check/SKILL.md +84 -0
  26. package/skills/lint-tool-fix/SKILL.md +94 -0
  27. package/skills/new-skill/SKILL.md +227 -0
  28. package/skills/new-skill/references/template.md +53 -0
  29. package/skills/new-skill/references/workflow-patterns.md +104 -0
  30. package/skills/pytest-case-create/SKILL.md +327 -0
  31. package/skills/pytest-case-create/references/test-standards.md +244 -0
  32. package/skills/pytest-case-fix/SKILL.md +274 -0
  33. package/skills/pytest-coverage-analyze/SKILL.md +226 -0
  34. package/skills/pytest-coverage-analyze/references/scoring-rules.md +57 -0
  35. package/skills/pytest-env-ensure/SKILL.md +198 -0
  36. package/skills/pytest-env-ensure/references/config.md +145 -0
  37. package/skills/pytest-execute/SKILL.md +155 -0
  38. package/skills/pytest-sample/SKILL.md +164 -0
  39. package/skills/pytest-sample/references/src/pytest-sample/Calculator.py +67 -0
  40. package/skills/pytest-sample/references/src/pytest-sample/ConfigManager.py +68 -0
  41. package/skills/pytest-sample/references/src/pytest-sample/FileProcessor.py +53 -0
  42. package/skills/pytest-sample/references/src/pytest-sample/OrderService.py +82 -0
  43. package/skills/pytest-sample/references/src/pytest-sample/TokenGenerator.py +50 -0
  44. package/skills/pytest-sample/references/src/pytest-sample/UserService.py +45 -0
  45. package/skills/pytest-sample/references/src/pytest-sample/__init__.py +0 -0
  46. package/skills/pytest-suitability-check/SKILL.md +224 -0
  47. package/skills/read-docs/SKILL.md +134 -0
  48. package/skills/read-docs/references/opencode/agents/cases.md +206 -0
  49. package/skills/read-docs/references/opencode/agents/design-pattern.md +47 -0
  50. package/skills/read-docs/references/opencode/agents/detail.md +191 -0
  51. package/skills/read-docs/references/opencode/agents/examples.md +100 -0
  52. package/skills/read-docs/references/opencode/agents/index.md +307 -0
  53. package/skills/read-docs/references/opencode/agents/workflow.md +161 -0
  54. package/skills/read-docs/references/opencode/cli/commands/acp.md +32 -0
  55. package/skills/read-docs/references/opencode/cli/commands/agent.md +16 -0
  56. package/skills/read-docs/references/opencode/cli/commands/attach.md +20 -0
  57. package/skills/read-docs/references/opencode/cli/commands/mcp.md +37 -0
  58. package/skills/read-docs/references/opencode/cli/commands/others.md +49 -0
  59. package/skills/read-docs/references/opencode/cli/commands/plugin.md +13 -0
  60. package/skills/read-docs/references/opencode/cli/commands/provider.md +44 -0
  61. package/skills/read-docs/references/opencode/cli/commands/run.md +81 -0
  62. package/skills/read-docs/references/opencode/cli/commands/serve.md +84 -0
  63. package/skills/read-docs/references/opencode/cli/commands/session.md +38 -0
  64. package/skills/read-docs/references/opencode/cli/commands/web.md +15 -0
  65. package/skills/read-docs/references/opencode/cli/env.md +39 -0
  66. package/skills/read-docs/references/opencode/cli/index.md +19 -0
  67. package/skills/read-docs/references/opencode/cli/tui.md +35 -0
  68. package/skills/read-docs/references/opencode/commands/examples.md +42 -0
  69. package/skills/read-docs/references/opencode/commands/index.md +185 -0
  70. package/skills/read-docs/references/opencode/config/provider.md +152 -0
  71. package/skills/read-docs/references/opencode/formatter/index.md +71 -0
  72. package/skills/read-docs/references/opencode/guide/config.md +419 -0
  73. package/skills/read-docs/references/opencode/guide/formatters.md +70 -0
  74. package/skills/read-docs/references/opencode/guide/index.md +37 -0
  75. package/skills/read-docs/references/opencode/guide/providers.md +31 -0
  76. package/skills/read-docs/references/opencode/guide/rules.md +63 -0
  77. package/skills/read-docs/references/opencode/plugins/examples.md +75 -0
  78. package/skills/read-docs/references/opencode/plugins/index.md +188 -0
  79. package/skills/read-docs/references/opencode/reference/index.md +119 -0
  80. package/skills/read-docs/references/opencode/rule/index.md +78 -0
  81. package/skills/read-docs/references/opencode/skills/detail.md +113 -0
  82. package/skills/read-docs/references/opencode/skills/examples.md +141 -0
  83. package/skills/read-docs/references/opencode/skills/index.md +126 -0
  84. package/skills/read-docs/references/opencode/skills/workflow.md +146 -0
  85. package/skills/read-docs/references/opencode/tests/agent.md +10 -0
  86. package/skills/read-docs/references/opencode/tests/config.md +60 -0
  87. package/skills/read-docs/references/opencode/tests/file.md +12 -0
  88. package/skills/read-docs/references/opencode/tests/serve.md +18 -0
  89. package/skills/read-docs/references/opencode/tests/session.md +31 -0
  90. package/skills/read-docs/references/opencode/tests/web.md +17 -0
  91. package/skills/read-docs/references/opencode/tools/arguments.md +305 -0
  92. package/skills/read-docs/references/opencode/tools/context.md +18 -0
  93. package/skills/read-docs/references/opencode/tools/custom.md +111 -0
  94. package/skills/read-docs/references/opencode/tools/detail.md +104 -0
  95. package/skills/read-docs/references/opencode/tools/examples.md +71 -0
  96. package/skills/read-docs/references/opencode/tools/index.md +56 -0
  97. package/skills/read-docs/references/opencode/tools/lsp.md +26 -0
  98. package/skills/read-docs/references/opencode/tools/mcp.md +132 -0
  99. package/skills/read-docs/references/opencode/train/README.md +135 -0
  100. package/skills/read-docs/references/opencode/train/agent-basic.md +772 -0
  101. package/skills/read-docs/references/opencode/train/command-basic.md +668 -0
  102. package/skills/read-docs/references/opencode/train/config-basic.md +509 -0
  103. package/skills/read-docs/references/opencode/train/index.md +164 -0
  104. package/skills/read-docs/references/opencode/train/practice.md +873 -0
  105. package/skills/read-docs/references/opencode/train/skill-basic.md +608 -0
  106. package/skills/read-docs/references/opencode/tui/commands/config.md +32 -0
  107. package/skills/read-docs/references/opencode/tui/commands/editor.md +47 -0
  108. package/skills/read-docs/references/opencode/tui/commands/index.md +125 -0
  109. package/skills/read-docs/references/opencode/tui/commands/init.md +5 -0
  110. package/skills/read-docs/references/opencode/tui/index.md +26 -0
@@ -0,0 +1,509 @@
1
+ # 基础配置培训
2
+
3
+ 学习 OpenCode 配置系统的核心概念,掌握配置文件编写和环境变量使用。
4
+
5
+ ## 理论介绍
6
+
7
+ ### 什么是配置系统?
8
+
9
+ OpenCode 使用 JSON/JSONC 配置文件管理所有设置,包括:
10
+ - **模型选择**:指定使用的 AI 模型
11
+ - **权限控制**:管理 Agent 的操作权限
12
+ - **Agent 定义**:创建专门的 AI 助手
13
+ - **命令配置**:定义自定义快捷命令
14
+
15
+ ### 配置文件位置
16
+
17
+ 按优先级加载(后者覆盖前者):
18
+
19
+ | 优先级 | 位置 | 用途 |
20
+ |--------|------|------|
21
+ | 1 | 远程配置(`.well-known/opencode`) | 组织级默认配置 |
22
+ | 2 | 全局配置(`~/.config/opencode/opencode.json`) | 用户偏好 |
23
+ | 3 | 自定义配置(`OPENCODE_CONFIG` 环境变量) | 自定义覆盖 |
24
+ | 4 | 项目配置(`.opencode/opencode.json`) | 项目级设置 |
25
+
26
+ ### 配置格式
27
+
28
+ 支持两种格式:
29
+ - **JSON**:标准 JSON 格式
30
+ - **JSONC**:带注释的 JSON(推荐)
31
+
32
+ ```jsonc
33
+ {
34
+ "$schema": "https://opencode.ai/config.json",
35
+ "model": "anthropic/claude-sonnet-4-5",
36
+
37
+ // 这是注释,JSONC 支持
38
+ "autoupdate": true
39
+ }
40
+ ```
41
+
42
+ ## 核心配置项
43
+
44
+ ### 1. 模型配置
45
+
46
+ #### 基础配置
47
+
48
+ ```jsonc
49
+ {
50
+ "$schema": "https://opencode.ai/config.json",
51
+ "model": "anthropic/claude-sonnet-4-5",
52
+ "small_model": "anthropic/claude-haiku-4-5"
53
+ }
54
+ ```
55
+
56
+ **说明**:
57
+ - `model`:主模型,处理复杂任务
58
+ - `small_model`:小模型,处理简单任务(节省成本)
59
+
60
+ #### Provider 配置
61
+
62
+ ```jsonc
63
+ {
64
+ "$schema": "https://opencode.ai/config.json",
65
+ "provider": {
66
+ "anthropic": {
67
+ "options": {
68
+ "apiKey": "{env:ANTHROPIC_API_KEY}",
69
+ "timeout": 600000, // 10分钟超时
70
+ "chunkTimeout": 30000 // 30秒分块超时
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ```
76
+
77
+ ### 2. 权限配置
78
+
79
+ #### 基础权限
80
+
81
+ ```jsonc
82
+ {
83
+ "$schema": "https://opencode.ai/config.json",
84
+ "permission": {
85
+ "edit": "ask", // 文件编辑需审批
86
+ "bash": "ask" // Shell 命令需审批
87
+ }
88
+ }
89
+ ```
90
+
91
+ **权限值说明**:
92
+ - `allow`:允许所有操作
93
+ - `ask`:运行前需用户审批
94
+ - `deny`:禁用该工具
95
+
96
+ #### 精细化权限
97
+
98
+ ```jsonc
99
+ {
100
+ "$schema": "https://opencode.ai/config.json",
101
+ "permission": {
102
+ "bash": {
103
+ "*": "ask", // 默认需审批
104
+ "git status": "allow", // git status 允许
105
+ "git diff*": "allow", // git diff 相关允许
106
+ "npm test": "allow" // 测试命令允许
107
+ }
108
+ }
109
+ }
110
+ ```
111
+
112
+ ### 3. Agent 配置
113
+
114
+ #### 简单 Agent
115
+
116
+ ```jsonc
117
+ {
118
+ "$schema": "https://opencode.ai/config.json",
119
+ "agent": {
120
+ "reviewer": {
121
+ "description": "代码审查 Agent",
122
+ "model": "anthropic/claude-haiku-4-5",
123
+ "permission": {
124
+ "edit": "deny"
125
+ }
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ #### 多模型协作
132
+
133
+ ```jsonc
134
+ {
135
+ "$schema": "https://opencode.ai/config.json",
136
+ "agent": {
137
+ "planner": {
138
+ "description": "规划者:分析需求,制定计划",
139
+ "model": "anthropic/claude-opus-4-5",
140
+ "temperature": 0.2
141
+ },
142
+ "executor": {
143
+ "description": "执行者:实现具体代码",
144
+ "model": "anthropic/claude-sonnet-4-5",
145
+ "temperature": 0.3
146
+ }
147
+ }
148
+ }
149
+ ```
150
+
151
+ ### 4. 命令配置
152
+
153
+ #### 基础命令
154
+
155
+ ```jsonc
156
+ {
157
+ "$schema": "https://opencode.ai/config.json",
158
+ "command": {
159
+ "test": {
160
+ "template": "运行完整测试套件并显示覆盖率报告",
161
+ "description": "运行测试",
162
+ "agent": "build"
163
+ }
164
+ }
165
+ }
166
+ ```
167
+
168
+ #### 参数化命令
169
+
170
+ ```jsonc
171
+ {
172
+ "$schema": "https://opencode.ai/config.json",
173
+ "command": {
174
+ "component": {
175
+ "template": "创建名为 $ARGUMENTS 的 React 组件",
176
+ "description": "创建新组件"
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### 5. 工具配置
183
+
184
+ #### 禁用工具
185
+
186
+ ```jsonc
187
+ {
188
+ "$schema": "https://opencode.ai/config.json",
189
+ "tools": {
190
+ "write": false, // 禁用文件写入
191
+ "bash": false // 禁用 Shell 命令
192
+ }
193
+ }
194
+ ```
195
+
196
+ #### 启用 LSP
197
+
198
+ ```jsonc
199
+ {
200
+ "$schema": "https://opencode.ai/config.json",
201
+ "lsp": true
202
+ }
203
+ ```
204
+
205
+ ## 环境变量使用
206
+
207
+ ### 基础用法
208
+
209
+ 使用 `{env:VARIABLE_NAME}` 引用环境变量:
210
+
211
+ ```jsonc
212
+ {
213
+ "$schema": "https://opencode.ai/config.json",
214
+ "model": "{env:OPENCODE_MODEL}",
215
+ "provider": {
216
+ "anthropic": {
217
+ "options": {
218
+ "apiKey": "{env:ANTHROPIC_API_KEY}"
219
+ }
220
+ }
221
+ }
222
+ }
223
+ ```
224
+
225
+ ### 设置环境变量
226
+
227
+ #### Linux/macOS
228
+
229
+ ```bash
230
+ export ANTHROPIC_API_KEY="your-api-key"
231
+ export OPENCODE_MODEL="anthropic/claude-sonnet-4-5"
232
+ ```
233
+
234
+ #### Windows PowerShell
235
+
236
+ ```powershell
237
+ $env:ANTHROPIC_API_KEY="your-api-key"
238
+ $env:OPENCODE_MODEL="anthropic/claude-sonnet-4-5"
239
+ ```
240
+
241
+ ### 自定义配置路径
242
+
243
+ ```bash
244
+ export OPENCODE_CONFIG=/path/to/custom-config.json
245
+ export OPENCODE_CONFIG_DIR=/path/to/config-directory
246
+ ```
247
+
248
+ ## 实例展示
249
+
250
+ ### 案例 1:团队项目配置
251
+
252
+ 创建 `.opencode/opencode.json`:
253
+
254
+ ```jsonc
255
+ {
256
+ "$schema": "https://opencode.ai/config.json",
257
+
258
+ // 使用团队统一的模型
259
+ "model": "anthropic/claude-sonnet-4-5",
260
+ "small_model": "anthropic/claude-haiku-4-5",
261
+
262
+ // 启用自动更新
263
+ "autoupdate": true,
264
+
265
+ // 配置权限:安全优先
266
+ "permission": {
267
+ "edit": "ask",
268
+ "bash": {
269
+ "*": "ask",
270
+ "git status": "allow",
271
+ "git diff*": "allow",
272
+ "npm run lint": "allow",
273
+ "npm test": "allow"
274
+ }
275
+ },
276
+
277
+ // 定义团队常用 Agent
278
+ "agent": {
279
+ "reviewer": {
280
+ "description": "代码审查:检查代码质量和最佳实践",
281
+ "mode": "subagent",
282
+ "model": "anthropic/claude-haiku-4-5",
283
+ "permission": {
284
+ "edit": "deny",
285
+ "bash": "deny"
286
+ }
287
+ },
288
+
289
+ "docs-writer": {
290
+ "description": "文档编写:API 文档、README、用户手册",
291
+ "mode": "subagent",
292
+ "model": "anthropic/claude-sonnet-4-5",
293
+ "temperature": 0.3
294
+ }
295
+ },
296
+
297
+ // 定义常用命令
298
+ "command": {
299
+ "lint": {
300
+ "template": "运行 ESLint 检查并修复所有问题",
301
+ "description": "代码规范检查",
302
+ "agent": "build"
303
+ },
304
+
305
+ "test": {
306
+ "template": "运行测试套件并分析失败原因",
307
+ "description": "运行测试",
308
+ "agent": "build"
309
+ },
310
+
311
+ "review": {
312
+ "template": "审查当前代码变更,检查代码质量",
313
+ "description": "代码审查",
314
+ "agent": "reviewer"
315
+ }
316
+ },
317
+
318
+ // 启用 LSP
319
+ "lsp": true,
320
+
321
+ // 配置文件监视器
322
+ "watcher": {
323
+ "ignore": ["node_modules/**", "dist/**", ".git/**"]
324
+ }
325
+ }
326
+ ```
327
+
328
+ ### 案例 2:个人开发配置
329
+
330
+ 创建 `~/.config/opencode/opencode.json`:
331
+
332
+ ```jsonc
333
+ {
334
+ "$schema": "https://opencode.ai/config.json",
335
+
336
+ // 偏好使用 Haiku 节省成本
337
+ "model": "anthropic/claude-haiku-4-5",
338
+
339
+ // 开放权限,快速开发
340
+ "permission": {
341
+ "edit": "allow",
342
+ "bash": "allow"
343
+ },
344
+
345
+ // 个人常用 Agent
346
+ "agent": {
347
+ "explorer": {
348
+ "description": "快速探索代码库",
349
+ "mode": "subagent",
350
+ "model": "anthropic/claude-haiku-4-5"
351
+ }
352
+ },
353
+
354
+ // 禁用自动更新
355
+ "autoupdate": false
356
+ }
357
+ ```
358
+
359
+ ### 案例 3:安全审查配置
360
+
361
+ 创建 `.opencode/opencode.json`:
362
+
363
+ ```jsonc
364
+ {
365
+ "$schema": "https://opencode.ai/config.json",
366
+
367
+ // 使用大模型进行深度分析
368
+ "model": "anthropic/claude-opus-4-5",
369
+
370
+ // 严格权限控制
371
+ "permission": {
372
+ "edit": "deny",
373
+ "bash": {
374
+ "*": "deny",
375
+ "git log*": "allow",
376
+ "git diff*": "allow"
377
+ },
378
+ "webfetch": "deny",
379
+ "websearch": "deny"
380
+ },
381
+
382
+ // 定义审查 Agent
383
+ "agent": {
384
+ "security-reviewer": {
385
+ "description": "安全审查:检查代码安全性问题",
386
+ "mode": "primary",
387
+ "model": "anthropic/claude-opus-4-5",
388
+ "temperature": 0.1,
389
+ "permission": {
390
+ "edit": "deny",
391
+ "bash": "deny"
392
+ }
393
+ }
394
+ }
395
+ }
396
+ ```
397
+
398
+ ## 动手练习
399
+
400
+ ### 练习 1:创建基础配置
401
+
402
+ **任务**:创建项目配置文件,满足以下需求:
403
+ 1. 使用 Sonnet 作为主模型
404
+ 2. 文件编辑需审批,git 命令允许
405
+ 3. 定义一个代码审查 Agent
406
+
407
+ **提示**:
408
+ ```jsonc
409
+ {
410
+ "$schema": "https://opencode.ai/config.json",
411
+ "model": "anthropic/claude-sonnet-4-5",
412
+ "permission": {
413
+ // 补充权限配置
414
+ },
415
+ "agent": {
416
+ // 补充 Agent 定义
417
+ }
418
+ }
419
+ ```
420
+
421
+ ### 练习 2:配置环境变量
422
+
423
+ **任务**:
424
+ 1. 设置环境变量 `OPENCODE_MODEL`
425
+ 2. 在配置文件中引用该环境变量
426
+ 3. 验证配置生效
427
+
428
+ **步骤**:
429
+ ```bash
430
+ # 1. 设置环境变量
431
+ export OPENCODE_MODEL="anthropic/claude-haiku-4-5"
432
+
433
+ # 2. 在配置文件中使用
434
+ # model: "{env:OPENCODE_MODEL}"
435
+
436
+ # 3. 启动 OpenCode 验证
437
+ opencode
438
+ ```
439
+
440
+ ### 练习 3:精细化权限配置
441
+
442
+ **任务**:配置 Bash 权限,满足:
443
+ 1. 默认需审批
444
+ 2. 允许所有 git 命令
445
+ 3. 允许 npm run 命令
446
+ 4. 禁止 rm 命令
447
+
448
+ **参考答案**:
449
+ ```jsonc
450
+ {
451
+ "permission": {
452
+ "bash": {
453
+ "*": "ask",
454
+ "git *": "allow",
455
+ "npm run *": "allow",
456
+ "rm *": "deny"
457
+ }
458
+ }
459
+ }
460
+ ```
461
+
462
+ ## 常见问题
463
+
464
+ ### Q1: JSON 和 JSONC 有什么区别?
465
+
466
+ **JSONC** 支持注释,更易读:
467
+ ```jsonc
468
+ {
469
+ "model": "claude-sonnet", // 这是注释
470
+ "autoupdate": true
471
+ }
472
+ ```
473
+
474
+ **JSON** 不支持注释:
475
+ ```json
476
+ {
477
+ "model": "claude-sonnet",
478
+ "autoupdate": true
479
+ }
480
+ ```
481
+
482
+ ### Q2: 配置优先级如何理解?
483
+
484
+ 优先级从低到高:
485
+ ```
486
+ 远程配置 → 全局配置 → 自定义配置 → 项目配置
487
+ ```
488
+
489
+ 项目配置优先级最高,适合团队统一配置。
490
+
491
+ ### Q3: 如何验证配置是否生效?
492
+
493
+ 启动 OpenCode 后:
494
+ 1. 使用 `/help` 查看可用命令
495
+ 2. 切换 Agent 查看是否显示自定义 Agent
496
+ 3. 执行操作验证权限配置
497
+
498
+ ### Q4: 配置文件可以放在其他位置吗?
499
+
500
+ 可以,通过环境变量指定:
501
+ ```bash
502
+ export OPENCODE_CONFIG=/custom/path/config.json
503
+ ```
504
+
505
+ ## 下一步
506
+
507
+ - 📖 [技能创建培训](/train/skill-basic) - 学习创建可复用技能
508
+ - 🤖 [Agent 配置培训](/train/agent-basic) - 深入理解 Agent 系统
509
+ - ⚡ [实战案例](/train/practice) - 综合应用所学知识
@@ -0,0 +1,164 @@
1
+ # OpenCode Agent 培训课程
2
+
3
+ 面向基础开发者的 OpenCode Agent 实战培训,通过理论讲解和实例演练快速掌握核心技能。
4
+
5
+ ## 课程概述
6
+
7
+ 本培训课程帮助开发者快速上手 OpenCode Agent,掌握配置、技能、Agent、命令等核心概念的实际应用。
8
+
9
+ ### 学习目标
10
+
11
+ - ✅ 理解 OpenCode 配置系统的工作原理
12
+ - ✅ 掌握技能(Skill)的创建和使用方法
13
+ - ✅ 学会配置专门的 Agent 执行特定任务
14
+ - ✅ 熟练使用自定义命令提高工作效率
15
+ - ✅ 通过实战案例巩固所学知识
16
+
17
+ ### 课程结构
18
+
19
+ | 章节 | 内容 | 预计时长 |
20
+ |------|------|----------|
21
+ | [基础配置](/train/config-basic) | 配置文件结构、常用配置项、环境变量 | 30分钟 |
22
+ | [技能创建](/train/skill-basic) | SKILL.md 编写、工作流设计、references 使用 | 40分钟 |
23
+ | [Agent 配置](/train/agent-basic) | Agent 类型、权限管理、多模型协作 | 35分钟 |
24
+ | [命令使用](/train/command-basic) | 命令模板、参数传递、Shell 集成 | 25分钟 |
25
+ | [实战案例](/train/practice) | 综合案例演练、常见问题解决 | 50分钟 |
26
+
27
+ ## 前置知识
28
+
29
+ ### 必备基础
30
+
31
+ - ✅ 基本的 JSON/YAML 配置文件理解
32
+ - ✅ Markdown 文档编写能力
33
+ - ✅ 命令行工具使用经验
34
+ - ✅ Git 基本操作
35
+
36
+ ### 推荐了解
37
+
38
+ - 🔹 LLM(大语言模型)基本概念
39
+ - 🔹 Node.js 项目结构
40
+ - 🔹 TypeScript/JavaScript 开发经验
41
+
42
+ ## 环境准备
43
+
44
+ ### 安装 OpenCode
45
+
46
+ ```bash
47
+ # 下载安装
48
+ npm install -g @anthropic/opencode
49
+
50
+ # 或使用包管理器
51
+ brew install opencode # macOS
52
+ ```
53
+
54
+ ### 初始化项目
55
+
56
+ ```bash
57
+ # 启动 OpenCode
58
+ opencode
59
+
60
+ # 在 OpenCode 中初始化项目配置
61
+ /init
62
+ ```
63
+
64
+ ### 目录结构
65
+
66
+ ```
67
+ 项目根目录/
68
+ ├── .opencode/
69
+ │ ├── opencode.json # 项目配置文件
70
+ │ ├── agents/ # Agent 定义
71
+ │ ├── commands/ # 自定义命令
72
+ │ └── skills/ # 技能定义
73
+ └── AGENTS.md # 项目规则文件
74
+ ```
75
+
76
+ ## 学习路径
77
+
78
+ ### 🎯 快速入门路径(推荐新手)
79
+
80
+ ```
81
+ 基础配置 → 技能创建 → 命令使用 → 实战案例
82
+ ```
83
+
84
+ 适合:刚接触 OpenCode,希望快速上手
85
+
86
+ ### 🚀 进阶开发路径(推荐有经验者)
87
+
88
+ ```
89
+ 基础配置 → Agent 配置 → 技能创建 → 实战案例
90
+ ```
91
+
92
+ 适合:熟悉配置系统,希望深入定制
93
+
94
+ ### 💡 完整学习路径
95
+
96
+ ```
97
+ 基础配置 → 技能创建 → Agent 配置 → 命令使用 → 实战案例
98
+ ```
99
+
100
+ 适合:希望全面掌握 OpenCode 的开发者
101
+
102
+ ## 学习建议
103
+
104
+ ### 理论与实践结合
105
+
106
+ 每个章节包含:
107
+ - **理论部分**:理解概念和原理
108
+ - **实例展示**:实际配置和代码示例
109
+ - **动手练习**:实践巩固所学知识
110
+
111
+ ### 循序渐进
112
+
113
+ 建议按照课程顺序学习,逐步深入:
114
+ 1. 先掌握配置基础
115
+ 2. 学会创建简单技能
116
+ 3. 理解 Agent 工作原理
117
+ 4. 熟练使用命令
118
+ 5. 通过实战案例综合应用
119
+
120
+ ### 实际应用
121
+
122
+ 学习过程中建议:
123
+ - 在实际项目中应用所学内容
124
+ - 创建符合团队需求的技能和 Agent
125
+ - 积累常见场景的配置模板
126
+
127
+ ## 常见问题
128
+
129
+ ### Q1: OpenCode 和其他 AI 编码助手有什么区别?
130
+
131
+ OpenCode 强调**可配置性**和**可扩展性**:
132
+ - 通过配置文件精细控制 AI 行为
133
+ - 创建专门的 Agent 处理特定任务
134
+ - 定义技能实现可复用的工作流
135
+
136
+ ### Q2: 配置文件应该放在哪里?
137
+
138
+ 按优先级:
139
+ - **项目级**:`.opencode/opencode.json`(推荐)
140
+ - **全局级**:`~/.config/opencode/opencode.json`
141
+ - **远程配置**:`.well-known/opencode`
142
+
143
+ ### Q3: 技能和 Agent 有什么区别?
144
+
145
+ | 特性 | 技能(Skill) | Agent |
146
+ |------|--------------|-------|
147
+ | 定义文件 | SKILL.md | Markdown 或 JSON |
148
+ | 加载方式 | 按需加载 | 会话切换或自动调用 |
149
+ | 主要用途 | 可复用工作流 | 专门任务助手 |
150
+ | 工具权限 | 继承 Agent 权限 | 可独立配置权限 |
151
+
152
+ ### Q4: 如何选择合适的模型?
153
+
154
+ 根据任务复杂度:
155
+ - **简单任务**:使用 Haiku 等小模型(快速、低成本)
156
+ - **复杂分析**:使用 Sonnet 等中模型(平衡性能和成本)
157
+ - **深度推理**:使用 Opus 等大模型(最高质量)
158
+
159
+ ## 获取帮助
160
+
161
+ - 📖 [官方文档](/guide/)
162
+ - 💬 [技能详解](/skills/detail)
163
+ - 🤖 [Agent 详解](/agents/detail)
164
+ - ⚡ [命令示例](/commands/examples)