opencode使用心得 安装先装node再安装opencodesudo npm install -g opencode-ailatest命令行输入opencode即可打开TUI界面。要退出可CtrlC或CtrlD。设置大模型接入方舟code plan参考https://www.volcengine.com/docs/82379/2188958?langzh可以安装ark helper工具一键配置curl -fsSL https://lf3-static.bytednsdoc.com/obj/eden-cn/ylwslo-yrh/ljhwZthlaukjlkulzlp/install.sh | sudo sh顺带说一下doubao-code和doubao-pro的token耗起来飞快似乎它在思考过程中也会大量消耗token很容易触发5小时限制。用其deepseek模型还可以消耗没那么快响应速度也ok。也可以修改opencode配置文件linux下在~/.config/opencode/opencode.json里。比如新增deepseekV4的大模型deepseek-v4-flash:{name:deepseek-v4-flash,limit:{context:1024000,output:4096}},deepseek-v4-pro:{name:deepseek-v4-pro,limit:{context:1024000,output:4096}},使用初始化工程在开发工程的根目录打开opencode执行/init命令opencode会先扫描整个工程生成AGENTS.md帮助AI理解。切换模式opencode有两种模式build和plan通过TAB键切换。plan模式会为我们建立todo列表然后切换到build模式按todo列表进行开发。很好用的一个功能。切换主题/theme切换模型使用/models命令顺带说一下模型选择。GLM5.1比较昂贵、也比较慢核心代码或算法用GLM5.1写事务性、重复性的工作交给deepseek免费的trae用来写UT或简单的参数增删。不建议拿GLM5.1来写UT太浪费了。开发skill与AI协作过程中我们会写大量的prompt这其中有些promt是可以作为经验保存下来供下次复用的。这大概就是skill设计的初衷吧。一个SKILL.md样例--- name: multi-tables-join-checker description: 三表及以上关联检查 license: MIT compatibility: opencode --- ## What I do 检查LINQ的三表关联及AsNoTracking是否正确使用 ## When to use me 开发CRUD型的Service服务要书写LINQ时。 ## Instructions - 找出Service中使用了三表及以上关联的LINQ因三表及以上的关联查询可能有性能风险。搜索时不仅要搜索join关键字还要搜索Include和嵌套Select它们也算关联一张表。 - 排查Service中涉及DBContext的ToListAsync方法调用它之前必须使用AsNoTracking()方法若未使用请补充若已使用一个LINQ里只需一个AsNoTracking()多余的请清除。 ## Notes UT类以Tests结尾的类不用排查放到~/.config/opencode/skills/multi-tables-join-checker/SKILL.md下即可。开发完后重启opencode使用/skills命令应该就能找到该skill执行即可。与AI协作的经验我常用的两种协作方式一是AI完成核心代码即先在plan下制定整体方案人看过没问题切到build让AI完成所有代码最后人来检视并修改合入。二是人来搭建框架代码划分好类、定义好数据结构但类的方法体都空着只写了todo注释然后由AI补齐。第一种方式用于首次搭建第二种方式常用于代码重构。写todo注释让AI去处理也是让AI进行代码微调的好方法因为AI一般会去阅读todo的上下文了解这个todo的确切含义。其实等价与trae里选择某段代码让AI去处理。只不过opencode没界面编辑能力相当于用todo注释去替代。另外todo注释跟prompt一样应尽可能详细考虑全面因为这种情况下AI所知的上下文毕竟有限。

本月热点