一是它的免费额度实在太慷慨了,不登录也有免费模型,200k 上下文对服务器运维绰绰有余。二是它的 Agent 机制,让我可以自定义一个只会搜索的 agent,某种程度上能代替搜索引擎。
下面展开说说。
准备工作
装 OpenCode 很简单,一行命令搞定。
curl -fsSL https://opencode.ai/install | bash装完直接就能用,会有内置的免费模型。你还可以接自己的 API Key(Claude、GPT、DeepSeek 都行),或者订阅他们的 Go 计划($10/月,可以用 Grok 4.5、DeepSeek V4 Pro 这些模型)。
免费模型额度用完了会怎样?不会停,会继续走免费模型。所以就算你订阅了 Go,额度用完也不影响使用,这点很良心。
免费额度慷慨得不像话
200k 上下文是什么概念
我日常维护的 K8s 集群配置在一个专门的目录,里面用 Kustomize 管理多个应用(Traefik、PostgreSQL、Supabase、Redis,业务应用 等)。
200k 上下文什么概念?基本上一整个 kustomizations/ 目录的 YAML 都能塞进去。我可以直接给 OpenCode 说"帮我看看 traefik 的 config,DNS 质询超时能不能调短一点",它读完所有文件直接定位到具体行,改完我 kustomize build 验证一下就行,不用自己翻来翻去找字段。
场景一:PostgreSQL 外部数据库
我的 PostgreSQL 跑在集群外面,要通过 Endpoints 引入集群。看一下配置:
apiVersion:v1kind:Servicemetadata:name:postgresqlnamespace:defaultspec:clusterIP:Noneports:-port:5432targetPort:5432---apiVersion:v1kind:Endpointsmetadata:name:postgresqlnamespace:defaultsubsets:-addresses:-ip:10.111.0.14ports:-port:5432以前要改 IP 地址,得先找到这个文件,找到 subsets.addresses.ip 这个字段(YAML 嵌套多了你懂的),再改。现在直接说"把 PostgreSQL Endpoints 的 IP 改成 10.111.0.15",它改了,我跑 kustomize build 确认没问题,提交,ArgoCD 自动同步。
其实这个配置还有一个好处,因为 Service 设置的是
clusterIP: None(Headless Service),所以应用直接用postgresql.default.svc.cluster.local就能访问,IP 变了也不用改应用的配置。
场景二:DNS 配置防单点故障
之前我的 CoreDNS 监听 127.0.0.1:53,问题很简单:CoreDNS 挂了,整个系统的 DNS 解析就炸了。单点故障嘛。
我想的是配 systemd-resolved,主 DNS 用 CoreDNS,如果 CoreDNS 挂了,自动用备用 DNS。但说实话我对 systemd-resolved 的配置不太熟(谁没事天天配这玩意儿),于是找 OpenCode 帮忙。
我大概描述了一下需求,它给了我配置方法,修改 /etc/systemd/network/10-netplan-eth0.network.d/dns-override.conf:
Network]DNS=127.0.0.1#5353DNS=183.60.83.19DNS=183.60.82.98UseDNS=no然后 CoreDNS 的监听端口改到 5353,systemd-resolved 监听 53。这样 CoreDNS 挂了,systemd-resolved 会自动 fallback 到 114.114.114.114。
实际调整了一下,因为 53 端口被 systemd-resolved 占了,所以 CoreDNS 改监听 5353,systemd-resolved 的
DNS=127.0.0.1#5353就行了。
妈妈再也不用担心 DNS 挂了上不了网。
完成之后,记得让opencode帮你生成交接文档哦。
场景三:RustFS 调研部署
RustFS 是一个用 Rust 写的分布式文件系统,之前完全没接触过。我自己也想过手动部署,但步骤有点繁琐,懒得看文档一步步搞。
于是让 OpenCode 帮我一条龙搞定:
研究安装方法 部署并验证 写个性能测试脚本
最后它给了我一个测试脚本,跑出来的结果如下。
想看详细数据的可以直接看下面这个表。
大小 并发 数量 方向 吞吐量 平均延迟 P50 P99 IOPS4KB 4 32 Upload 0.81MB/s 19.31ms 19.18ms 27.10ms 51.794KB 4 32 Download 2.49MB/s 6.28ms 6.02ms 14.82ms 159.3464KB 4 32 Upload 11.46MB/s 21.81ms 21.91ms 30.03ms 45.8564KB 4 32 Download 38.05MB/s 6.57ms 6.17ms 11.86ms 152.221MB 4 16 Upload 68.94MB/s 58.03ms 58.11ms 68.24ms 17.231MB 4 16 Download 380.69MB/s 10.51ms 10.62ms 20.98ms 95.1716MB 2 8 Upload 70.33MB/s 454.97ms 458.42ms 520.10ms 2.2016MB 2 8 Download 441.01MB/s 72.56ms 72.67ms 96.54ms 13.7864MB 1 4 Upload 49.16MB/s 1301.81ms 1282.91ms1377.72ms 0.7764MB 1 4 Download 310.45MB/s 206.15ms 198.72ms 245.19ms 4.85小文件(4KB)的下载延迟才 6ms,大文件(1MB)的下载吞吐能到 380MB/s,对于用 Rust 写的文件系统来说,表现还不错。
整个过程下来,我基本上没碰过 RustFS 的文档,全是 OpenCode 搞定。
自定义 Agent = 你的专属搜索引擎
前面说的是 OpenCode 默认的能力,下面说一下它的 Agent 机制。
OpenCode 允许你自定义 agent,每个 agent 可以精确控制它能用的工具。你可以创建一个"只会搜索"的 agent,它的全部能力就是 websearch + webfetch + question,其他所有工具全部关掉。
我的配置大概长这样:
# agents/chat.mddescription:仅使用网络搜索、网页抓取和用户提问的调研Agentmode:primarytemperature:0.7tools:websearch:truewebfetch:truequestion:trueread:falseedit:falsewrite:falseapply_patch:falseglob:falsegrep:falsebash:falsetask:falseskill:false# ... 其余全部关掉核心思路是:只给 AI 搜索和读网页的能力,不给它改文件、写代码、跑命令的权限。
为什么比搜索引擎香
传统搜索引擎的痛点,大家都懂:
搜个技术问题,前几条全是 SEO 垃圾 得打开 5 个标签页,一个个看,自己对比总结 广告比正文还多
这个 agent 的流程是:
你问问题 → AI 理解意图 → websearch 搜 → webfetch 读内容 → 给你整理好的答案
省去了"打开 5 个页面 → 手动对比 → 自己总结"这个过程。它直接帮你读完所有相关页面,然后告诉你"根据这几篇文章,结论是 XXX"。
比如你问"Rust 的 web 框架选哪个",它会搜到 Actix-web、Axum、Rocket、Warp,然后对比各自的优缺点,最后给你一个推荐。
当然它也不是万能的,对于非常时效性的信息(比如某服务今天挂了没)还是得自己去搜,但对于技术调研、查库的用法、比较不同方案这些场景,体验好太多了。
总结
OpenCode 这玩意儿,本来以为只是一个写代码的助手,结果用下来发现它能干的事情远不止写代码。
三个让我比较满意的点:
免费额度够意思 — 不登录也能用免费模型,200k 上下文对服务器运维绰绰有余 自定义 Agent 扩展了边界 — 只给搜索工具,它就能当搜索引擎用 真实的效率提升 — 不管是配 DNS 还是部署 RustFS,本来要花半小时查文档的事,几句话就搞定了
如果你也有 K8s 集群要维护,或者经常要做技术调研,不妨装个 OpenCode 试试。预算够的话订阅 Go 计划,$10/月就能用 Grok 4.5、DeepSeek V4 Pro 这些模型,性价比确实高。
参考链接
OpenCode 官网: https://opencode.ai GitHub 仓库: https://github.com/anomalyco/opencode OpenCode Go 计划: https://opencode.ai/go
夜雨聆风