卷儿先生 發表於 2026-3-16 08:17:00

OpenCode实战:在终端中为AI智能体配置与开发Skills技能模块

<style>pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14px !important; line-height: 1.6 !important; padding: 16px !important; margin: 16px 0 !important; background-color: rgba(248, 248, 248, 1) !important; border: 1px solid rgba(225, 228, 232, 1) !important; border-radius: 6px !important; tab-size: 4 !important; -moz-tab-size: 4 !important; max-width: 100% !important; box-sizing: border-box !important }
code { font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14px !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; overflow-wrap: normal !important; display: inline !important; background: rgba(0, 0, 0, 0) !important; border: none !important; padding: 0 !important; margin: 0 !important; line-height: inherit !important }
pre code { background: rgba(0, 0, 0, 0) !important; border: 0 !important; border-radius: 0 !important; display: block !important; line-height: 1.6 !important; margin: 0 !important; max-width: none !important; overflow: visible !important; padding: 0 !important; white-space: pre !important; word-wrap: normal !important; word-break: normal !important; color: inherit !important }
.token.comment, .token.prolog, .token.doctype, .token.cdata { color: rgba(112, 128, 144, 1) !important; font-style: italic !important }
.token.punctuation { color: rgba(153, 153, 153, 1) !important }
.token.atrule, .token.attr-value, .token.keyword { color: rgba(0, 119, 170, 1) !important; font-weight: bold !important }
.token.function, .token.class-name { color: rgba(221, 74, 104, 1) !important; font-weight: bold !important }
.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: rgba(102, 153, 0, 1) !important }
.token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted { color: rgba(153, 0, 85, 1) !important }
.cnblogs-markdown pre, .cnblogs-post-body pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; background-color: rgba(248, 248, 248, 1) !important; border: 1px solid rgba(225, 228, 232, 1) !important; border-radius: 6px !important; padding: 16px !important; margin: 16px 0 !important }
pre, pre, pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important }</style>
      <p>在AI智能体(Agent)技术快速演进的今天,如何高效、标准化地扩展其能力边界,已成为开发者面临的核心挑战。继MCP(Model Context Protocol)之后,Anthropic推出的<strong>Skills标准</strong>正迅速成为业界共识。本文将带你深入实战,基于强大的终端AI编程助手<strong>OpenCode</strong>,从零开始搭建Skills环境,并亲手开发一个专属技能模块,探索如何将复杂的专业流程封装成AI可理解、可执行的“数字胶囊”。</p><h2>一、OpenCode:终端优先的AI编程助手新范式</h2><p>在众多AI编程工具中,OpenCode以其独特的<strong>“终端优先”</strong>理念脱颖而出。它并非某个IDE的插件,而是一个深度集成在命令行环境中的独立助手。其核心竞争力在于<strong>“Plan(规划)与Build(构建)”双模式工作流</strong>,以及对超过75种大语言模型(包括GLM-4、DeepSeek-V3、GPT、Claude等)的广泛支持,实现了真正的模型无关性。</p><p>这意味着开发者无需被绑定在任何单一的AI服务商或代码编辑器上。你可以在自己熟悉的项目目录中直接唤醒OpenCode,它便能基于整个项目的代码上下文进行分析与操作,完美融合了<strong>自然语言处理</strong>的智能与终端工作流的高效。其开源特性也保障了代码隐私和安全,允许在本地完全离线运行。</p><p>OpenCode的核心特点使其适用于多种场景:</p><ul><li><strong>代码审查与解释</strong>:快速理解陌生代码库。</li><li><strong>自动化重构与调试</strong>:在获得确认后执行代码修改。</li><li><strong>技术方案咨询</strong>:基于项目上下文获得精准建议。</li></ul><table><tbody><tr><td>场景分类</td><td>具体任务示例</td><td>OpenCode的优势</td></tr><tr><td>代码理解与探索</td><td>快速理解新项目结构、解释复杂函数逻辑、梳理代码库依赖关系。</td><td>通过/init分析整个项目,能基于完整项目上下文和LSP智能提示给出精准解释,比片段式问答更高效。</td></tr><tr><td>开发与调试</td><td>编写新功能、修复Bug、重构代码(如重命名函数、拆分模块)。</td><td>双代理模式保证安全:先用plan模式(只读)分析,确认后再用build模式执行修改。支持一键撤销,回退不满意的更改。</td></tr><tr><td>项目维护与自动化</td><td>生成测试用例、编写文档、创建Dockerfile或部署脚本。</td><td>能与项目技术栈深度结合,生成符合现有规范的代码。可编写脚本或集成到CI/CD,实现自动化。</td></tr><tr><td>团队协作与审查</td><td>分享代码会话、辅助代码审查、帮助新成员熟悉项目。</td><td>可生成可分享的会话链接,他人能在浏览器中查看完整的分析、修改过程和对话,便于协作和知识传递。</td></tr><tr><td>追求隐私与控制的开发</td><td>处理敏感或私有代码库、在合规要求严格的环境中使用。</td><td>隐私优先:默认代码数据不传云端;支持连接本地模型(如Ollama),实现完全离线。</td></tr></tbody></table><h2>二、快速搭建OpenCode本地开发环境</h2><p>搭建OpenCode环境非常简单。首先确保系统已安装Node.js(版本≥18,推荐20 LTS)。安装完成后,只需一个npm命令即可完成全局安装。</p>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="language-bash"># 安装opencode
npm i -g opencode-ai
# 验证安装
​​​​​​​opencode --version</code></pre>
<p>安装过程如图所示:</p><img alt="" height="180" src="https://i-blog.csdnimg.cn/direct/461f1ad43be943868dd79bf5ccab0716.png" width="459"><p>安装成功后,在任意项目目录下输入<code>opencode</code>命令即可启动交互界面。初始界面会展示欢迎信息,你可以尝试与内置的免费模型进行简单对话,验证安装是否成功。</p><img alt="" height="510" src="https://i-blog.csdnimg.cn/direct/8e910b60d1cd45a280971b61141d7707.png" width="1096"><img alt="" height="521" src="https://i-blog.csdnimg.cn/direct/baa7468790ad440694886bc938857f2a.png" width="1224"><p>掌握几个基本命令能极大提升效率:使用<code>/model</code>查看可用模型,<code>/connect</code>配置新模型,<code>/help</code>获取帮助。</p><table><tbody><tr><td colspan="1" rowspan="1"><p><strong>命令类别</strong></p></td><td colspan="1" rowspan="1"><p><strong>命令</strong></p></td><td colspan="1" rowspan="1"><p><strong>功能说明</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>连接与设置</strong></p></td><td colspan="1" rowspan="1"><p>/connect</p></td><td colspan="1" rowspan="1"><p>新增LLM提供商(如Anthropic、OpenAI)</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/models</p></td><td colspan="1" rowspan="1"><p>列出并切换可用的AI模型</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/themes</p></td><td colspan="1" rowspan="1"><p>切换终端界面的主题</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/help</p></td><td colspan="1" rowspan="1"><p>显示帮助对话框</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>对话管理</strong></p></td><td colspan="1" rowspan="1"><p>/new</p></td><td colspan="1" rowspan="1"><p>开始一个新的对话</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/sessions</p></td><td colspan="1" rowspan="1"><p>列出所有历史对话并切换</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/compact</p></td><td colspan="1" rowspan="1"><p>压缩当前对话内容,以节省上下文窗口</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/export</p></td><td colspan="1" rowspan="1"><p>将会话记录导出到文件</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/share</p></td><td colspan="1" rowspan="1"><p>生成当前对话的分享链接</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>编辑与撤销</strong></p></td><td colspan="1" rowspan="1"><p>/undo</p></td><td colspan="1" rowspan="1"><p>撤销上一条 AI 消息及其带来的所有文件更改</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/redo</p></td><td colspan="1" rowspan="1"><p>重做已撤销的更改</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/editor</p></td><td colspan="1" rowspan="1"><p>打开外部编辑器</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>项目与代理</strong></p></td><td colspan="1" rowspan="1"><p>/init</p></td><td colspan="1" rowspan="1"><p>初始化项目,扫描并生成 AGENTS.md 文件,帮助AI理解项目结构</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/agents</p></td><td colspan="1" rowspan="1"><p>切换或管理AI代理(如 Plan/Build 模式)</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/review</p></td><td colspan="1" rowspan="1"><p>审查未提交的代码更改</p></td></tr><tr><td colspan="1" rowspan="1"><p></p></td><td colspan="1" rowspan="1"><p>/mcp</p></td><td colspan="1" rowspan="1"><p>管理模型上下文协议(Model Context Protocol)</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>其他</strong></p></td><td colspan="1" rowspan="1"><p>/exit</p></td><td colspan="1" rowspan="1"><p>退出 OpenCode 应用程序</p></td></tr></tbody></table>


<h2>三、配置专属大语言模型引擎</h2><p>虽然OpenCode内置了基础模型,但为了获得更强大的<strong>深度学习</strong>与推理能力,连接高性能的云端大模型是关键一步。OpenCode支持配置国内外主流模型,如智谱AI的GLM、DeepSeek等。</p><p>配置前,你需要前往对应AI平台的开发者中心获取API Key。例如,智谱AI的密钥可在其官方平台获取。</p><img alt="" height="571" src="https://i-blog.csdnimg.cn/direct/622606546fc04fc7bab281e63b99c52f.png" width="1280"><p>配置过程非常直观:在OpenCode对话框中输入<code>/connect</code>,在搜索框中输入你想添加的模型提供商(如“deepseek”),然后按照提示输入你的API Key即可。</p><img alt="" height="263" src="https://i-blog.csdnimg.cn/direct/19b4081a7b1f4076a1ec16acb182060c.png" width="743"><img alt="" height="325" src="https://i-blog.csdnimg.cn/direct/4e58ce0aa39f4cada1cc6aba34925657.png" width="909"><img alt="" height="306" src="https://i-blog.csdnimg.cn/direct/360ea61703f142aa9772b5fbd169e535.png" width="691"><img alt="" height="289" src="https://i-blog.csdnimg.cn/direct/d9a6e2679dda439c9641b56e4a7137b8.png" width="785"><p>配置完成后,再次输入<code>/models</code>,就能看到新添加的模型出现在列表中,并可以随时切换使用。</p><img alt="" height="282" src="https://i-blog.csdnimg.cn/direct/ef1ac7071b664930bec14134680a47d7.png" width="524"><blockquote><p>上面是以deepseek的配置为例,智普大模型的配置也可以参考同样的操作配置即可</p></blockquote><h2>四、深入理解Skills:AI智能体的“能力胶囊”</h2><p>Skills的本质,是将人类在特定领域的专业知识、方法论和执行流程,打包成一个标准化、可复用、可被AI智能体调用的能力模块。你可以将其理解为给AI的<strong>“岗位培训手册”</strong>或<strong>“数字员工技能包”</strong>。</p><blockquote><p>举个生活的例子:我会打网球,当球飞过来,我拿起球拍跑位,在合适的时机、用合适的力度击球,让球准确落在对方场地不出界,这一整套操作逻辑,就叫打网球“技能”。</p></blockquote><p>为什么Skills如此重要?它核心解决了AI应用中的几个痛点:</p><ul><li><strong>降低提示工程复杂度</strong>:将复杂流程固化,无需每次编写冗长提示。</li><li><strong>提升执行确定性与质量</strong>:提供标准化操作流程(SOP),减少AI的随机性。</li><li><strong>实现能力复用与共享</strong>:一次开发,多处使用,社区共建生态。</li><li><strong>优化上下文与成本</strong>:通过分层加载机制,显著节省Token消耗。</li></ul><table><tbody><tr><td>传统方式的问题</td><td>Skills 如何解决</td></tr><tr><td>提示词不稳定:每次都要重写,效果波动大</td><td>✅ 将最佳实践固化为 SKILL.md,确保一致性</td></tr><tr><td>Token 浪费严重:每次对话都塞入长 prompt</td><td>✅ 渐进式披露(Progressive Disclosure):只在触发时加载完整指令</td></tr><tr><td>无法执行复杂操作:如读写文件、调 API、跑脚本</td><td>✅ 支持绑定 Python/Bash 脚本、工具调用</td></tr><tr><td>重复劳动无法自动化</td><td>✅ 一次创建,无限次调用,支持共享/变现</td></tr><tr><td>幻觉率高:纯文本推理易出错</td><td>✅ 关键逻辑由脚本在沙盒中执行,结果更可靠</td></tr></tbody></table><p>Skills的工作原理采用了巧妙的<strong>渐进式披露机制</strong>,有效平衡了能力丰富度与上下文开销:</p><ol><li><strong>元数据层</strong>:启动时仅加载名称和描述(约100 tokens),让AI知道有哪些技能可用。</li><li><strong>核心指令层</strong>:任务匹配时,才加载详细的SKILL.md文件(通常&lt;5000 tokens),描述具体步骤。</li><li><strong>资源层</strong>:执行阶段按需加载脚本、模板等资源文件,理论上无Token限制。</li></ol><blockquote><p>可以理解为:系统只在需要时打开相应的「技能模块」,让上下文始终保持最轻量、最高效。 对比传统 Prompt 而言,Skills 则是模块化 Prompt + 上下文调度系统。</p></blockquote><p>这种设计使得Skills能与其他AI能力(如MCP工具、RAG知识库、Rules规则)高效协作,成为连接AI智能体与具体任务执行的“中间层”。</p><img alt="" height="590" src="https://i-blog.csdnimg.cn/direct/ac1199be5ba7407994a981637bf5caa6.png" width="560"><h2>五、实战:从使用到开发自定义Skills</h2><h3>5.1 使用现有模板Skills</h3><p>首先,我们验证在没有Skills的环境下,OpenCode的能力范围。询问其具备的技能,通常会得到基础回复。</p><img alt="" height="271" src="https://i-blog.csdnimg.cn/direct/80c864a191e44d159ef47313c61646ba.png" width="1253"><p>接下来,我们从社区获取现成的Skills。一个重要的来源是Anthropic官方的Skills GitHub仓库。</p><img alt="" height="677" src="https://i-blog.csdnimg.cn/direct/c4a24800758a4ae4a037166ff88ca410.png" width="1280"><p>将下载的Skills文件夹放置在OpenCode的特定技能目录下(通常位于用户目录的<code>.opencode</code>文件夹内)。</p><img alt="" height="353" src="https://i-blog.csdnimg.cn/direct/9818424f49e042cba86b4408fe0378e2.png" width="790"><img alt="" height="879" src="https://i-blog.csdnimg.cn/direct/0d2de7b7499642a7a32521dd9950199c.png" width="1007"><img alt="" height="626" src="https://i-blog.csdnimg.cn/direct/1b63551434634970aded46abd0a84dd8.png" width="817"><p>放置完成后,再次询问可用技能,你会发现OpenCode已经成功识别并加载了新的Skills模块。</p><img alt="" height="594" src="https://i-blog.csdnimg.cn/direct/b80ba7d87bd243ba985c26e4b6d7e37c.png" width="1230"><p>现在,让我们实际调用一个写作Skill。输入指令,要求AI根据一篇技术文章大纲,生成完整的Markdown文档并保存到指定位置。</p>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="language-bash">写一篇2026年新能源发展趋势的文章,1000字以内,最后放到这个目录,D:\工作空间\open-project</code></pre>
<p>OpenCode会识别任务与“Technical Writer”技能的匹配度,自动调用该Skill,并按步骤执行,最终在本地生成文档文件。</p><img alt="" height="462" src="https://i-blog.csdnimg.cn/direct/b723f8fe93be4d5e880dc902fca1f916.png" width="1231"><img alt="" height="654" src="https://i-blog.csdnimg.cn/direct/e87ca2c6774d4a8892ac4bae377968f6.png" width="1211"><img alt="" height="265" src="https://i-blog.csdnimg.cn/direct/9739e2911c364b209c1dfbb58592c78d.png" width="715"><h3>5.2 开发你的第一个自定义Skill</h3><p>了解了Skill的结构后,我们可以动手创建自己的技能。一个标准的Skill目录包含以下核心文件:</p>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="language-bash">my-skill/
├── SKILL.md               ← 唯一必需文件(全大写)
├── scripts/
│   └── generate_ui.py   ← 可执行脚本(Python/Bash等)
├── refs/
│   ├── template.md      ← 参考模板
│   └── examples/          ← 示例输出
└── README.md            ← 人类可读说明(非必需)</code></pre>
<p>其中,<code>SKILL.md</code>文件是核心,它定义了技能的元数据和行动指南。最关键的是<code>description</code>字段,AI依靠它来判断是否调用该技能。</p><code>description</code><p>下面是一个“自媒体文案生成器”Skill的<code>SKILL.md</code>示例框架:</p>
<pre style="white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important"><code class="language-bash">---
name: "xiaohongshu-copywriter"
description: &gt;-
自动生成小红书爆款文案。
触发关键词:小红书、种草、笔记、爆款文案、KOL风格
trigger_keywords:
- 小红书
- 种草
- 爆款文案
- 笔记
version: "1.2"
author: "花叔"
---
你现在是「小红书百万粉博主」,请按以下规则生成内容:
## 核心原则
- 开头用感叹句或疑问句抓眼球
- 中间穿插 emoji(每2-3句一个)
- 结尾带话题标签 #xxx
- 语气亲切,像跟闺蜜聊天
## 输出格式
1. 标题(带或)
2. 正文(200字以内)
3. 3个相关话题标签
## 示例
- 用户输入:“推荐一款平价遮瑕”
- 你输出:
黄皮救星!50块遮瑕居然能打哭专柜?
姐妹们我真的要吹爆这个国货遮瑕!!
黄黑皮暗沉痘印一抹隐形,持妆8小时不氧化~
关键才49块!学生党闭眼冲!
#平价彩妆 #遮瑕推荐 #黄皮必备</code></pre>
<p>我们可以从社区市场(如ObraSuperpowers)找到一个接近的模板Skill进行修改,这比从零开始更高效。</p><blockquote><p>http://mcpmarket.cn/skills/</p></blockquote><img alt="" height="745" src="https://i-blog.csdnimg.cn/direct/9c95aa52a2054f738bebce2cf93cdf54.png" width="1280"><p>将模板下载并放入Skills目录后,根据自身需求修改<code>SKILL.md</code>的描述、指令和步骤。例如,专门优化为生成“公众号爆款文章”。</p><img alt="" height="687" src="https://i-blog.csdnimg.cn/direct/e86974e6a94d45418356735e3a848610.png" width="1280"><p>修改完成后,重启OpenCode或重新加载技能,输入“我有哪些skills?”进行验证。你会发现自定义的技能已成功加载。</p><img alt="" height="505" src="https://i-blog.csdnimg.cn/direct/66f399aa63d84f44bcb7cc6f100ce5f0.png" width="767"><p>最后,提出一个匹配你技能描述的需求,如“帮我写一篇关于AI编程助手的公众号文章”。OpenCode将自动调用你的自定义Skill,输出符合要求的文案。</p><img alt="" height="503" src="https://i-blog.csdnimg.cn/direct/d21834ed2ec04b678fd398b05c3a63c4.png" width="1073">


<h2>六、Skills生态与学习资源</h2><p>Skills生态正在蓬勃发展,以下社区和市场是寻找灵感和现成技能的好去处:</p><ul><li><strong>Anthropic官方Skills市场</strong>:获取最基础和官方的技能示例。 <blockquote><p><strong>一句话总结</strong>:由Anthropic官方维护,提供超50,000+标准化技能包,覆盖PDF处理、代码生成等高频场景,支持一键安装与跨平台兼容。</p></blockquote></li><li><strong>GitHub Skills学习平台</strong>:专注于开发相关的技能。 <blockquote><p><strong>一句话总结:</strong> 开发者主导的开源Skills集合地,集成GitHub Actions实现交互式学习,主打灵活自定义与技术创新(如持续集成、CLI开发等)。</p></blockquote></li><li><strong>ObraSuperpowers社区市场</strong>:一个活跃的中文Skills分享社区。 <blockquote><p><strong>一句话总结:</strong> 极客向第三方技能库,专注轻量化、高精度工作流(如Linear问题解析),以“自我反思指令集”降低上下文开销。</p></blockquote></li><li><strong>Awesome Claude Skills合集</strong>:社区维护的优质Skills列表。 <blockquote><p><strong>一句话总结</strong>:开发者社区主导的 <strong>开源 Skills 资源库</strong>,汇集 500+ 高质量技能包,覆盖文档处理、数据分析、商业自动化等 9 大高频场景,支持模块化调用与分层加载机制,显著提升 Claude 的垂直领域执行力</p></blockquote></li></ul><p>通过本文的实战演练,我们完成了从OpenCode环境搭建、大模型配置,到Skills概念理解、模板使用,最终实现自定义技能开发的完整闭环。Skills作为扩展AI智能体能力的标准化方案,通过将<strong>机器学习</strong>的灵活性与人类专业流程的确定性相结合,为我们打开了人机协作的新大门。现在,就打开终端,开始为你和你的AI助手封装第一个专属技能吧!</p>

---

<div style="background: rgba(236, 253, 245, 1); padding: 16px 20px; border-bottom: 3px solid rgba(16, 185, 129, 1); margin-top: 30px">
<h3 style="color: rgba(4, 120, 87, 1); margin-top: 0; font-size: 16px"> 精选好课</h3>
<p style="color: rgba(102, 102, 102, 1); font-size: 13px; margin-bottom: 12px">本文涉及的技术,这些课程讲得更深入:</p>
<ul style="line-height: 2; font-size: 14px; padding-left: 20px">
<li><strong>Vue开发实战</strong><br>
    <span style="color: rgba(136, 136, 136, 1); font-size: 13px">‍ 唐金州 | Vue.js实战开发指南</span></li>
</ul>
</div><br><br>
来源:https://www.cnblogs.com/ycfenxi/p/19722965
頁: [1]
查看完整版本: OpenCode实战:在终端中为AI智能体配置与开发Skills技能模块