ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

opencode 基本使用:用 brew 与 npm 装好后,把 agent 与 skill 跑起来

opencode 基本使用:用 brew 与 npm 装好后,把 agent 与 skill 跑起来 1. 从 brew 与 npm 装好 opencode 之后agent 和 skill 为什么还是跑不起来很多人第一次接触 opencode卡住的地方往往不是安装本身而是装完之后不知道下一步该做什么。命令行敲了opencode界面出来了但 agent 在哪、skill 怎么触发、配置文件该放哪全是一头雾水。这篇就按「装好之后怎么让 agent 与 skill 真正可用」这条线走一遍每一步都给可复制的命令和配置片段最后用一个最小任务验证它确实能干活。opencode 是一个跑在终端里的 AI 编码代理工具它把大模型能力、工具调用、agent 编排和 skill 复用整合在一个交互式会话里。适合谁适合已经习惯命令行、想让 AI 直接读写项目文件、执行 shell 命令、按自定义流程干活的开发者。它不是一个编辑器插件而是一个独立的 CLI 程序你在项目目录里启动它它就能看到当前项目的文件结构并按你的指令操作。安装方式分平台。Mac 上走 brewWindows 上走 npm。两条路径我都试过下面分别给命令。Mac 安装与升级# 安装 brew install anomalyco/tap/opencode # 升级 brew upgrade anomalyco/tap/opencode # 卸载 brew uninstall anomalyco/tap/opencodeWindows 或已有 Node 环境的机器走 npmnpm i -g opencode-ai装完之后验证一下版本确认命令在 PATH 里opencode --version如果这一步报command not found说明 brew 的 tap 没加成功或者 npm 全局 bin 目录不在 PATH。brew 的情况重新执行一次brew tap anomalyco/tap再装npm 的情况用npm config get prefix看全局目录把它加到 PATH 里。安装只是第一步。真正让新手困惑的是opencode 启动后agent 和 skill 是两套独立但又能互相配合的机制。agent 决定「谁来干活、能用哪些工具」skill 决定「这类任务按什么流程干」。两者都需要配置文件或目录结构来定义光装好程序是不会自动出现的。所以接下来的重点是把配置层级搞清楚再动手写第一个 agent 和第一个 skill。2. TaoToken 前置给 opencode 配一个能调用的模型入口opencode 本身不带模型它需要你配置一个 provider 才能对话。这里用 TaoToken 作为模型接入入口它的 API 地址是https://taotoken.net/api兼容 OpenAI 风格的调用方式opencode 可以直接把它当成一个 provider 来配。先拿到 API Key。打开https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapikeys登录后在控制台创建一个 Key复制出来。这个 Key 就是后面配置里的apiKey字段。opencode 的配置加载有优先级顺序理解这个顺序能避免「我明明改了配置却不生效」的问题。从低到高大致是组织级远程配置、全局配置~/.config/opencode/opencode.json、项目配置项目目录/opencode.json、项目.opencode/目录、OPENCODE_CONFIG环境变量指定的文件、OPENCODE_CONFIG_CONTENT内联配置。后面的覆盖前面的。日常开发最常用的是全局配置和项目配置这两层。全局配置放用户级偏好比如 provider 和 Key项目配置放这个项目特有的 agent、权限、插件。这样换项目时不用重复配 Key项目里只写跟项目相关的东西。配置 provider 的片段长这样写到~/.config/opencode/opencode.json{ $schema: https://opencode.ai/config.json, provider: { taotoken: { npm: ai-sdk/openai-compatible, name: TaoToken, options: { baseURL: https://taotoken.net/api, apiKey: 你的_API_KEY }, models: { claude-sonnet-4-5: { name: Claude Sonnet 4.5 } } } }, model: taotoken/claude-sonnet-4-5 }这里三个关键字段要写全Base URL 是https://taotoken.net/apiKey 是你刚创建的Model ID 是taotoken/claude-sonnet-4-5这种provider/model格式。opencode 里切换模型用/models命令配好之后就能在列表里看到 TaoToken 下的模型。如果你想把配置放在项目里而不是全局就在项目根目录建opencode.json内容一样但注意项目配置会覆盖全局的同名字段。Key 这种敏感信息建议放全局项目配置里只写模型选择。配好之后启动 opencode在项目目录里执行cd your-project opencode进去之后先跑/models确认模型列表里有你配的 TaoToken 模型选中它。再跑/status看当前会话状态确认 provider 连接正常。这一步过了说明模型入口通了接下来才能谈 agent 和 skill。3. 可复制配置agent、skill 与权限的完整片段agent 和 skill 是 opencode 里两个不同层次的概念配置方式也不一样。agent 用 Markdown 文件定义放在~/.config/opencode/agents/或项目.opencode/agents/下skill 也是 Markdown放在skills/name/SKILL.md。注意目录名用复数单数名虽然向后兼容但新项目统一用复数更清晰。先看 agent。opencode 内置了几个 agentBuild 是默认主代理全工具权限适合写代码改文件Plan 用于规划分析默认所有操作都是 askGeneral 是子代理跑多步骤任务Explore 是只读探索代理没有写权限。你可以用opencode agent list查看全部。创建自定义 agent 用交互式命令opencode agent create它会问你保存位置全局还是项目、描述这个 agent 做什么、生成系统提示词、选择可用工具最后生成一个 Markdown 文件。生成的文件大概长这样放在.opencode/agents/reviewer.md--- description: 代码审查代理只读分析不修改文件 mode: subagent tools: write: false edit: false bash: false read: true grep: true glob: true --- 你是一个代码审查代理。你的任务是阅读指定文件找出潜在问题 包括边界条件、错误处理缺失、命名不一致。不要修改任何文件 只输出审查意见。这里mode可以是primary或subagenttools控制这个 agent 能用哪些工具。审查类 agent 把 write、edit、bash 关掉只留读和搜索这样它就不可能误改代码。再看 skill。skill 是一段可复用的能力描述放在skills/name/SKILL.md。opencode 搜索 skill 的位置有优先级项目.opencode/skills/最高然后全局~/.config/opencode/skills/再是 Claude 兼容目录.claude/skills/和~/.claude/skills/最后是.agents/skills/兜底。一个最小 skill 示例放在.opencode/skills/changelog/SKILL.md--- name: changelog description: 根据 git 提交记录生成 CHANGELOG 条目 --- 当用户要求生成 changelog 时执行以下步骤 1. 运行 git log --oneline -20 获取最近提交 2. 按 feat / fix / docs / chore 分类 3. 输出 Markdown 格式的条目每条一行 4. 不要编造未出现在提交记录里的内容skill 的触发有两种方式在会话里输入/skills查看可用 skill 并手动调用或者由模型根据任务描述自行决定调用。手动调用更可控适合流程固定的任务。权限配置也放在opencode.json里用permission字段控制 bash 和 edit 的行为。规则有三种allow直接运行、ask提示审批、deny阻止。下面这个片段把 git 和 npm 放行rm 禁止其他 bash 命令需要审批{ $schema: https://opencode.ai/config.json, permission: { bash: { *: ask, git *: allow, npm *: allow, rm *: deny, grep *: allow }, edit: { *: deny, packages/web/src/content/docs/*.mdx: allow } } }这个配置的实用之处在于日常高频的 git、npm 不用每次点确认危险操作直接拦住编辑权限按路径精细控制。项目级配置放opencode.json全局放~/.config/opencode/opencode.json项目级会覆盖全局。把 agent、skill、权限三样配好opencode 才算真正「能用」。只装程序不配这些它就是一个普通的对话窗口agent 和 skill 都不会出现。4. 验证请求跑一个最小任务确认 agent 与 skill 生效配置写完不代表生效得实际跑一次。下面用一个最小任务把 agent 和 skill 都验证一遍。第一步确认 agent 列表里有你创建的 agentopencode agent list输出里应该能看到reviewer如果你按上面的例子建了。如果没看到检查文件是不是放在.opencode/agents/下扩展名是不是.mdfrontmatter 的---有没有写对。第二步启动 opencode 并切换 agent。在项目目录里opencode进去之后输入/agents会列出所有可用 agent选中reviewer。切换成功后界面会显示当前 agent 名称。第三步验证 skill。输入/skills应该能看到changelog。如果没看到检查.opencode/skills/changelog/SKILL.md路径是否正确注意是skills复数、每个 skill 一个文件夹、文件名必须是SKILL.md全大写。第四步跑一个真实任务。在会话里输入帮我审查 src/utils/format.ts重点看错误处理如果 agent 配置正确它会用 read 和 grep 工具读文件然后输出审查意见不会尝试修改文件。这一步能验证 agent 的工具权限是否按配置生效。再验证 skill输入/skills选中changelog然后它会按 SKILL.md 里的步骤执行 git log 并生成条目。如果它真的跑了git log并输出了分类后的条目说明 skill 加载成功。第五步验证模型调用。随便问一句「当前项目用的是什么语言」看它能不能正常回复。如果回复正常说明 TaoToken 的 provider 配置生效模型入口通了。整个验证链路是模型能回话 → agent 能切换且工具权限正确 → skill 能被调用并执行步骤。三者都过opencode 就算配好了。这里有个细节skill 手动调用用/skills但如果你希望模型自动判断何时用 skill需要在 SKILL.md 的 description 里写清楚触发条件。description 写得越具体模型越容易在合适的时候调用它。5. 本篇常见错排查401、local proxy failed 与 skill 不加载配置过程中最容易撞上的几类报错这里逐个对照。401 Unauthorized。这个基本是 Key 的问题。检查opencode.json里apiKey字段是不是复制完整有没有多余空格。TaoToken 的 Key 在控制台创建后只显示一次如果没存下来就重新建一个。另外确认baseURL是https://taotoken.net/api结尾不要多加斜杠也不要用别的路径。local proxy failed 或连接超时。这类报错通常是网络出口问题不是配置问题。先确认本机能不能正常访问https://taotoken.net/api用 curl 测一下curl -I https://taotoken.net/api如果 curl 也超时说明是网络环境的事检查本机网络设置。如果 curl 正常但 opencode 报错检查 opencode 版本是不是太旧brew upgrade anomalyco/tap/opencode或npm i -g opencode-ailatest升一下。reading choices 相关报错。这通常出现在模型返回格式不符合预期时。opencode 期望 OpenAI 兼容的响应结构如果 provider 配错比如 baseURL 指到了非兼容端点解析就会失败。确认npm字段是ai-sdk/openai-compatiblebaseURL 是https://taotoken.net/api。OAuth 相关报错。opencode 的 MCP 配置里如果选了需要 OAuth 的 server但没完成授权会报这个。用opencode mcp list看 server 状态没连上的重新opencode mcp add配一遍。如果这个 MCP server 不需要 OAuth在添加时选 No。skill 不加载。三个常见原因路径不对必须是skills/name/SKILL.md复数、文件夹、全大写文件名、frontmatter 格式错---包裹name和description必填、优先级被覆盖项目级同名 skill 会盖掉全局的。用/skills命令看列表没出现就是没加载成功。agent 切换后工具不生效。检查 agent 文件里的tools字段布尔值写对没有。write: false是禁用不是字符串false。另外mode字段决定它是主代理还是子代理子代理不能直接切换只能被主代理调用。配置改了不生效。opencode 的配置有优先级项目配置覆盖全局配置。如果你在全局改了但项目里有同名配置以项目为准。用OPENCODE_CONFIG环境变量可以指定一个配置文件强制覆盖调试时有用OPENCODE_CONFIG/path/to/test-config.json opencode排查的核心思路是先确认模型入口通curl 测 API再确认配置加载对看优先级最后确认 agent 和 skill 的文件路径与格式。大部分问题出在路径和字段格式上而不是程序本身。6. 把 agent 与 skill 用起来从最小可用到日常顺手配好之后日常怎么用才顺手这里给几个实际经验。agent 的价值在于「角色隔离」。Build 用来写代码Plan 用来做方案设计Explore 用来搜代码结构Reviewer 用来审查。不同 agent 配不同工具权限能避免「让审查代理误改了代码」这种事。切换 agent 用/agents或者在会话里用agent名关联。skill 的价值在于「流程固化」。把重复性任务写成 SKILL.md比如生成 changelog、跑测试、格式化提交信息。写 skill 时 description 要具体步骤要可执行不要让模型自由发挥。skill 里可以引用工具比如git log、npm test但要注意权限配置里对应的命令得是 allow 或 ask否则会被拦。权限配置建议从紧到松。一开始 bash 全设 ask跑几天看看哪些命令高频再把 git、npm、grep 这类放行。rm 和涉及删除的命令永远设 deny。edit 权限按路径控制只放开你确实需要 AI 改的目录。模型选择上简单任务用低推理力度复杂任务用高推理力度。opencode 里用/variants切换low 省 tokenhigh/max 适合复杂重构。TaoToken 的模型列表里选一个主力模型配好之后日常就用它。最后配置文件和 skill 建议提交到版本库除了 Key。项目级的.opencode/目录和opencode.json提交后团队其他人拉下来就能用同一套 agent 和 skill不用每个人重新配。Key 放全局配置或环境变量不进版本库。到这里从 brew/npm 安装到 TaoToken 配模型到 agent 和 skill 定义再到验证和排障整条链路就通了。opencode 的 agent 和 skill 不是装完就有的得动手配、动手跑、动手调配一次之后日常就顺了。
返回列表