openCode使用

备注:未经博主允许禁止转载,如有问题,欢迎指正。

个人笔记(整理不易,一起努力~)

笔记目录学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客

个人随笔工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客

安装node.js,参考:https://blog.csdn.net/weixin_42717928/article/details/102539758?spm=1001.2014.3001.5501

OpenCode 是一个独立的开源社区驱动项目

地址:https://opencode.ai/

输入opencode就能进入界面了

可以看到当前的模型

模型名称 核心优势 短板 最适合你的场景
Big Pickle(默认选中) OpenCode 官方自研的专属免费模型,和工具的适配性最好,终端输出格式不乱、响应速度最快,延迟最低,专门针对终端编程场景做了优化,轻量代码任务零门槛 长上下文能力弱于另外两个,复杂大型项目、超长篇代码的处理能力有限 刚上手不知道选哪个、日常写小脚本、单文件代码修改、快速查语法 / 解释代码,新手首选
GLM-5 Free GLM-5 免费 智谱 AI 的国产大模型免费版,中文理解能力是三个里最强的,对中文需求、中文注释、中文项目的适配性拉满,基础编程能力在线,对标 GPT-4o 的基础能力 极端复杂的底层算法、超大型工程的处理能力不如付费模型 中文需求多、要写带中文注释的代码、做中文项目开发,国内用户用着最顺手
Kimi K2.5 Free Kimi K2.5 自由 月之暗面的 Kimi 免费版,长上下文能力是三个里的天花板,能轻松处理多文件代码、整个项目分析、超长代码文档,不会出现上下文遗忘、断片的问题 响应速度比另外两个慢一点,长文本处理需要更多时间,偶尔会有多余的输出 需要分析整个项目代码、处理大段多文件代码、读超长开发文档、复杂多步骤的编程任务

可以配置些好点的模型

比如zhipu

质谱AI开放平台:https://bigmodel.cn/usercenter/proj-mgmt/apikeys

创建个密钥输入就行

deekseek也行:https://platform.deepseek.com/api_keys

我在第二次安装openai的时候遇到光标一直在加载,很长时间没有没出反馈

关掉了卡住的 npm 进程,旧进程卡住时,可能在缓存里留下了损坏的文件,先清掉

开新终端执行新命令执行

npm cache clean --force

然后执行

npm i -g opencode-ai --registry=https://registry.npmmirror.com --verbose

拿到日志后查了下,是成功的,但是不清楚为什么一直显示加载

再次检查,看起来没问题:

比如写一首诗

比如我@一个pdf

可以看到模型是不支持的

去这里下skill anthropics/ˈænθrəpɪks/

https://github.com/anthropics/skills

这里注意:

opencode 作为一个独立应用,它的用户数据目录(缓存、配置、技能等)遵循 XDG 标准

C 盘的 opencode 目录是它的默认数据存储位置,比如在.cache,.local,.config

我不想数据在C盘占用空间,可以这样改

在你希望的目录下新增四个子文件夹:

  • config(存配置文件)
  • data(存技能、数据)
  • cache(存缓存)
  • state(存运行状态)
  • 最终目录结构如:F:\gameTest\ai\opencode\configF:\gameTest\ai\opencode\dataF:\gameTest\ai\opencode\cacheF:\gameTest\ai\opencode\state

在「用户变量」中点击「新建」,添加以下 4 个环境变量

变量名 变量值
XDG_CONFIG_HOME F:\gameTest\ai\opencode\config
XDG_DATA_HOME F:\gameTest\ai\opencode\data
XDG_CACHE_HOME F:\gameTest\ai\opencode\cache
XDG_STATE_HOME F:\gameTest\ai\opencode\state

清理 C 盘旧数据(彻底释放空间)

删除 C 盘旧配置

rmdir /S /Q "C:\Users\Administrator\.config\opencode"

删除 C 盘旧数据/技能

rmdir /S /Q "C:\Users\Administrator\.local\share\opencode"

删除 C 盘旧缓存

rmdir /S /Q "C:\Users\Administrator\.cache\opencode"

删除 C 盘旧状态

rmdir /S /Q "C:\Users\Administrator\.local\state\opencode"

可以看到有我们需要的pdf技能

我这里把整个技能(上面图的全部目录)复制到这里(全局),自己创建个skills目录即可

注意:

创建「项目内技能」目录(只在当前目录生效),如.agents\skills\.claude\skills\.opencode\skills\ 这几个目录,是因为它们默认不存在 ,需要你自己手动创建,这几个目录是 OpenCode 用来加载「项目内技能」的约定位置

项目目录:

  • ./.opencode/skills/<技能名>/SKILL.md
  • ./.claude/skills/<技能名>/SKILL.md
  • ./.agents/skills/<技能名>/SKILL.md
  • F:\gameTest\ai\opencode\.opencode\skills\
  • F:\gameTest\ai\opencode\.claude\skills\
  • F:\gameTest\ai\opencode\.agents\skills\

全局目录:

  • ~/.config/opencode/skills/<技能名>/SKILL.md
  • ~/.claude/skills/<技能名>/SKILL.md
  • ~/.agents/skills/<技能名>/SKILL.md
  • F:\gameTest\ai\opencode\config\opencode\skills\(重点!只需要管这个就行)
  • F:\gameTest\ai\opencode\config\claude\skills\(几乎不用)
  • F:\gameTest\ai\opencode\config\agents\skills\(几乎不用)

关键:~ 在 Windows 里本来是 C 盘的用户目录(C:\Users\Administrator),但你设置了 XDG_CONFIG_HOME=F:\gameTest\ai\opencode\config,所以 ~/.config/ 就等于 F:\gameTest\ai\opencode\config\,OpenCode 不会再去 C 盘翻了

注意:如果在 F:\gameTest\ai\opencode\.opencode\skills\(项目内)和 F:\gameTest\ai\opencode\config\opencode\skills\(全局)都放了「技能 1」时,项目内的技能 1 会覆盖全局的技能 1------OpenCode 会优先用项目内的版本,全局的版本会被 "屏蔽",只有删掉项目内的技能 1,才会用到全局的

  • 仅对当前目录生效 :如果你切换到其他目录(比如 F:\gameTest\)启动 OpenCode,此时「项目内工具箱」变成 F:\gameTest\.opencode\skills\(这个目录里没有技能 1),OpenCode 就会用全局的「技能 1」。

OpenCode 会先找 F:\gameTest\.opencode\skills\(当前目录的项目内目录),但这个目录不存在;

接着加载全局的 F:\gameTest\ai\opencode\config\opencode\skills\技能1(功能 B);

原 opencode 目录下的 "技能 1(功能 A)" 不会被加载(因为不是当前工作目录的项目内目录)

  • 同名才会覆盖,不同名互不影响:比如项目内有「技能 1」,全局有「技能 2」,OpenCode 会同时加载这两个技能,不存在覆盖;只有名称完全一样的技能,才会触发 "项目内覆盖全局" 的规则
  • 其他盘(比如 D 盘、E 盘) 打开工作目录,OpenCode 依然遵循「项目内技能优先、全局技能兜底」的规则 ------ 只是 "项目内技能" 的查找范围变成了其他盘的当前工作目录 ,而全局技能始终固定在你设置的 F:\gameTest\ai\opencode\config\opencode\skills\,不会随盘符变化

注意:open从当前工作目录向上查找,直到找到 Git 仓库根目录

  • 向上查找 = 找 "上级文件夹"(比如 F:\gameTest\ai\opencode\src 的上级是 F:\gameTest\ai\opencode\,再上级是 F:\gameTest\ai\);
  • Git 仓库根目录 = 包含 .git 文件夹的目录(.git 是 Git 初始化后自动生成的隐藏文件夹)

场景 1:当前目录无 Git,向上找也没 Git(你现在的情况)

  • 如果你打开的是 F:\gameTest\ai\opencode\src\test\(孙目录):
  • Step1:先查 test\.opencode\skills\(当前目录)→ 无;
  • Step2:向上找上级 src\.opencode\skills\ → 无;
  • Step3:再向上找 opencode\.opencode\skills\ → 你的项目内技能目录;
  • Step4:继续向上找 ai\.opencode\skills\ → 无;
  • Step5:再向上找 gameTest\.opencode\skills\ → 无;
  • Step6:直到顶级目录都没 .git,停止查找;
  • 最终:只加载 opencode\.opencode\skills\ 里的技能(你手动建的)

场景 2:当前目录向上找到 Git 仓库根目录

  • 如果你打开的是 F:\gameTest\ai\opencode\src\test\(孙目录):
  • Step1:查 test\.opencode\skills\ → 无;
  • Step2:向上找 src\.opencode\skills\ → 无;
  • Step3:向上找 opencode\.opencode\skills\ → 找到,且发现 opencode\.git(Git 根目录);
  • Step4:停止查找(不会再往上找 ai\gameTest\);
  • 最终:只加载 opencode\.opencode\skills\ 里的技能(Git 根目录下的),不会查更上层的目录

场景 3:Git 目录在更上层

  • 你打开 F:\gameTest\ai\opencode\
  • Step1:查 opencode\.opencode\skills\ → 找到技能 1;
  • Step2:向上找 ai\.opencode\skills\ → 无;
  • Step3:向上找 gameTest\.opencode\skills\ → 找到技能 2,且发现 gameTest\.git;Step4:停止查找;
  • 最终:加载 opencode\ 的技能 1 + gameTest\ 的技能 2(Git 根目录内的所有项目内技能)
相关推荐
JaydenAI3 小时前
[拆解LangChain执行引擎]一个实例理解LangChain的几种流模式
ai·langchain·agent·pregel
大模型真好玩18 小时前
LangChain DeepAgents 速通指南(二)—— Summarization中间件为Agent作记忆加减法
人工智能·langchain·agent
月弦笙音19 小时前
【Agent】智能体大时代:百家争鸣下的AI新纪元
openai·agent
香芋Yu19 小时前
【从零构建AI Code终端系统】03 -- Agent 循环:一个 while 就是全部
人工智能·agent·claude·code·agent loop
ZaneAI21 小时前
🚀 Claude Agent SDK 使用指南:会话管理(Session )
langchain·agent·claude
x-cmd1 天前
[x-cmd] Firefox 148 发布 AI 开关,支持一键禁用 AI 功能
人工智能·ai·firefox·agent·x-cmd
大傻^1 天前
智能体(Agent)深度解析:从概念到落地的全栈技术指南
人工智能·agent·智能体
开源之美1 天前
【读Gemini CLI源码,品Agent架构设计】系列文章(一) —— Agent Loop设计与实现
agent
pcplayer1 天前
Delphi程序和大模型交互之二
人工智能·ai·大模型·agent·delphi