opencode 不只是写代码:用免费模型帮你搜教程、下视频

我作为高校教师建议大一开学要有电脑,还要安装OpenCode使用智能体,而且之前一篇还说了 opencode 的四种用法与为什么我推荐命令行。

有同学看完问:那玩意儿不是给程序员写代码用的吗?我又不是学计算机的,跟我有什么关系?

关系大了。opencode 的主要场景不一定是编程。除了写代码和跟操作系统打交道之外,它也能帮你做很多日常任务。你可以把它看作一个多功能的智能体协同配合过程——你说事,它去搜、去找、去下、去验证,最后把东西摆到你面前。

还有的同学说:我也安装了,可是不知道怎么用啊?

今天就拿一个真实的例子演示一遍:去 B 站找一个英语口语教程,下载第一集到桌面。

事情得说清楚

先看我是怎么下命令的:

给出命令

"帮我去B站找到有史以来最简明易懂最被认可的英语口语教程,下载其中第一集到本设备的桌面上。"

就这么一句。但你注意这里头有几个关键信息:

  • 去哪儿找:B 站。不是抖音,不是快手,就是 B 站。你得把备选区间设定好,否则它找的东西质量不一定符合你的预期。
  • 要什么样的:最简明易懂、最被认可。这俩词定调了筛选标准——不要那种一百集讲语法的,也不要那种浮夸卖课的,要的是口碑好、上手快的。
  • 要第几集:第一集。不是全部,不是"看着办",全部下载可能磁盘就存不下了。
  • 下到哪儿:本设备的桌面。不是下载目录,不是某个项目文件夹,就是桌面,一眼能看见,当然这不是个好的习惯,最好是有一个对应的单独目录,不过为了演示给新手看就先这样了。

这四条缺一条都麻烦。你如果只说"帮我下个英语视频",它可能给你下个非常呆萌的动画儿歌,也可能下个六级听力真题,你看了想骂它,可是实际上问题不在它笨,在于你没说清。

把它当做一个语言转换过程:从人类的自然语言,转换成一个可执行的搜索操作,以及你希望最后给你呈现的结果。确定性和清晰很重要。这东西最需要的是你进行语言表达的效率——你得能说得清楚,把事儿才能办了。

你说不清楚的时候怎么办?那就尽量多说。不用考虑遣词造句,不用有文采,你要做的是用最大的信息量把你要做的事儿描述清楚。它的理解能力是不错的,你多给它几条线索,它自己能往一块儿拼。怕的是你给的信息太少,它只能猜,猜歪了你又嫌它不行。

它开始干活了

命令给出去之后,它自己开始搜:

模型搜索

它调用了网络搜索工具,关键词换了好几轮——"最简单易懂 英语口语教程"、"B站最经典英语口语教学"、"百万播放"——这是它在反复校准搜索策略,一轮不够再换一轮。你看那个搜索结果列表,B 站上这类教程是真不少,有"全170集英语经典900句",有"挑战100天英语开口计划",还有 Coach Shane 的 Daily Easy English Expression。

几轮搜下来,它选中了 Coach Shane 这一套。理由它自己说了:每集 3 到 5 分钟,只讲一个地道表达,讲解里不光讲意思还讲连读弱读这些发音细节,零基础一学就会。主频道订阅百万,B 站上多人搬运,累计播放上千万,一些营销号曾经也都推荐过,基本上在英语学习圈子里认可度挺高。

这个筛选过程你自己做可能要翻半天评论区,对比好几个视频,而模型帮你来几轮搜索就给定位了。这就是工具调用的价值——它不是瞎猜,是真的去查了,查完还给你说了为什么选这个。

中间不是一帆风顺

找到之后要下载,它先用 yt-dlp 试:

尝试下载

报错了。HTTP Error 412: Precondition Failed。B 站的反爬机制挡住了。

你看它的反应——它没卡住,没跟你说"对不起我下不了您自己来吧"。它先加 User-Agent、加 Referer 头,再试,还是 412。然后它意识到可能是 yt-dlp 版本太旧,WBI 签名机制搞不定,于是自己去 pip install -U yt-dlp 把版本升到最新,再试一次——这次过了。

这个"自己装工具、自己修问题"的能力,是 opencode 和普通网页对话框最大的区别。你要是直接跟千问啊豆包啊等等的网页版说"帮我下个视频",它十有八九告诉你"抱歉我无法访问外部网络下载文件",然后这事就卡死了。opencode 不一样,它手里有终端,能装包,能改参数,能反复试。它搞不定的时候会换路径和工具,不是一遇到墙就回头。

这就是智能体和聊天机器人的区别。聊天机器人只能跟你说话,智能体能动手。

搞定了

最后视频下到桌面上了:

完成后给结果

/Users/fred/Desktop/Coach_Shane_001.mp4,8.6MB,第1集"How are you doing?",3分21秒。

它下完还顺带验证了一下文件确实存在、大小正常,然后告诉你选的是哪一套、为什么选、第一集讲的什么。不是甩给你一个文件就完事,是把前因后果都交代了。

整个过程你做了什么?你就说了开头那一句话。剩下搜索、筛选、下载、装工具、修报错、验证,全是它自己跑的。你省下来的时间够你看两集教程了。

后续还能继续聊

下完之后我又问了一句"这个系列不错啊,一共多少集":

继续交互

它没忘前文,直接去查那个合集的 playlist 信息,告诉你一个合集 50 集,整套一共 20 个合集,算下来 1000 集,每天学 2 集差不多一年刷完。

这就是会话的连续性——你不用每次都从头解释背景,它记得你刚才在干什么。这点也比网页对话框强,网页版你刷新一下上下文就丢了,opencode 的会话是持续的,你能像跟一个人聊天一样,一件事追着问下去。

为什么不直接用网页版模型

有同学可能说:那我直接打开千问、豆包、Kimi 的网页版问不就行了?干嘛非得开终端用 opencode?

能问,但很多事干不了。网页版模型主要是文本对话,上传文件也有限制,它不具备多工具调用能力——不能跑命令、不能装包、不能下载之后再验证、不能操作你本地的文件系统。你说"帮我下个视频",它只能告诉你怎么下,不能替你下。你说"帮我整理桌面上这十张图片按日期分类",它只能教你用 Python 怎么写脚本,不能直接动手帮你分。

opencode 不一样,它在你机器上有终端、有文件系统、有网络访问、能装包。你说事儿,它动手。这就是 Agent 和聊天助手的本质区别。

而且最关键的一点——这套东西不花钱。opencode 自带的那个免费模型,绝大部分日常场景都能搞定。下个视频、搜个文档、整理个文件、查个资料,都不用你掏一分钱。你拿它当个免费的辅助使唤就行,能帮你省下大量亲自操作的时间。不一定每次都百分百满意,但总比你自己亲自上手要强得多。

为什么推荐用命令行终端

还是那句话,我推荐大家用命令行终端版本的 opencode,这样可以尽量减少其他东西的干扰。

终端里就一个输入框、一段对话、一个结果。你不用关心界面长什么样、按钮在哪儿、广告弹没弹。你只管把事儿说清楚,然后看它干、验证结果,别的都不用管。

这个体验跟网页对话框最大的不同是:网页版是"对话",opencode 是"协作"。对话是你问我答,协作是我说事儿你去办。后者更接近你真正想要的东西——你不是想跟 AI 聊天,你是想让 AI 帮你把活干了。

说给大学新生的话

希望大学新生入学之后,先把这件事练好。

练什么?练把事儿说清楚的能力

大学跟高中不一样,高中你问老师问同学天经地义,大学很多人不好意思开口。有的同学觉得"我不会,问人家多丢人",有的同学怕打扰别人,有的同学就是社恐。这时候你偷偷问模型嘛,没人知道,不丢人。

但问模型这件事本身有门槛——你得会问。你说"豆包帮我把作业做了",它做不出来,你也不知道它怎么做的,它也可能糊弄你。你说"帮我在 B 站找一个英语口语教程",它找的可能是你根本不想看的那种。问题不在它,在你的问题描述可能太模糊。

把事儿说清,不需要你有文采,不需要你遣词造句,需要的是你把信息量给够:去哪儿找、找什么样的、要哪一部分、放哪儿。这四条说清了,它基本能给你办明白。这四条说糊了,它也只能糊弄回来。

这其实就是在练沟通能力。你跟模型沟通熟了,跟人沟通也不会差——因为你习惯了把需求拆清楚、把背景交代明白、把预期说明确。这个能力不管你以后干什么都用得上。

等到你能熟练地用 opencode 搜视频、下文档、整理资料、查资料了,你就再也不用问老师"那个视频在哪儿找的"、"那个软件从哪下载"这种问题了——这种问题问出来才真的呆呆的。安装软件的事儿也可以让它来,下回咱们再说。

今天这个搜教程加下载的过程,你会看到它中间调用了好几个工具:网络搜索、网页抓取、命令行下载、包管理器升级。如果它找不到某个工具,它自个儿就会装,这事非常方便,你不用操心这些细节。

但如果你想知道具体是怎么实现的,你可以直接问它:"你刚才下载那个视频用的什么命令?为什么第一次失败了?"它会把它用的命令、失败的原因、怎么修的,一条一条告诉你。让你干活的同时,还能把背后的门道看明白,这可比自己闷头查文档省事多了。

大学生活就快开始了,大家赶紧趁早开练。