【2】. OpenCode 快速上手

【2】. OpenCode 快速上手 目录1. 虚拟机的配置教程2. 安装Node.js2.1 Ubuntu24.042.2 Windows113. 安装 OpenCode4. OpenCode 基础命令启动 OpenCode退出 OpeCode配置 OpenCode 主题命令面板其余指令5. 内置 Agent6. 给 OpenCode 配置模型 LLM1. 进入配置模型界面2. 搜索模型3. 给定 API Key4. 切换模型7. 理解 LLM 的记忆虽然OpenCode 官网提供了Linux的一键安装脚本但是实测在国内网络环境下并不顺利。因此我们使用npm的方式安装。1. 虚拟机的配置教程参考最新VMware安装Ubuntu虚拟机教程图文详细附所需资源分享链接_onepanel-CSDN博客2. 安装Node.js2.1 Ubuntu24.04首先需要安装Node.jsNode.js 是啥大家肯定都听说过JavaScript也知道JavaScript是运行在浏览器上的语言。浏览器中用来解释运行JavaScript的模块被称为 JavaScript引擎 其中最知名的就是Chrome 中的引擎 V8 Worker。后来有大佬把 V8 Worker 单独拎出来封装了一下赋予其更多的能力比如可以调用系统API此时就得到了 Node.js。Node.js 使 JavaScript 的应用场景更广泛了不仅仅可以进行Web前端开发还能进行后端开发和桌面应用开发。目前我们使用的 AI CLI 系列的开发工具大部分都是使用 Node.js 开发的。在 Node.js 官网 Node.js — 下载 Node.js® 提供了下载安装的方案。apt install nodejs对于 Ubuntu24.04 来说apt 默认源中的 Node.js 版本较低通常不满足 AI 开发工具的需求。因此我们需要额外安装源使 apt 可以安装高版本的 Node.js此处是 v24 版本。1. 使用 root 用户引入 Node.js 的 apt 源curl -sL https://deb.nodesource.com/setup_24.x | bash -2. 安装 Node.jsapt install nodejs但对于国内的网络环境来说上述操作有一定概率失败解决方法直接从国内镜像源下载 Node.js 的压缩包sudo wget https://registry.npmmirror.com/-/binary/node/v24.3.0/node-v24.3.0-linux-x64.tar.xz解压sudo tar -xJf node-v24.3.0-linux-x64.tar.xz -C /usr/local/lib/创建软链接sudo ln -s /usr/local/lib/node-v24.3.0-linux-x64/bin/node /usr/local/bin/node sudo ln -s /usr/local/lib/node-v24.3.0-linux-x64/bin/npm /usr/local/bin/npm sudo ln -s /usr/local/lib/node-v24.3.0-linux-x64/bin/npx /usr/local/bin/npx如果安装完成后 node -v 仍输出旧版根因bash 会缓存命令路径之前执行 node 时缓存了旧版 /usr/bin/node 的路径即使软链接已指向新版bash 仍使用缓存的旧路径。hash -r 清除缓存后问题解决。最终结果成功之后我们会获得 node 和 npm 两个命令什么是 npmnpm 是 Node.js 内置的 包管理工具类似于 Ubuntu 的 apt只不过 npm下载的软件包是给 Node.js 使用的而 apt 下载的软件包则是给 Ubuntu 系统使用的。PS C:\Users\75060 node Welcome to Node.js v24.18.0. Type .help for more information. (To exit, press CtrlC again or CtrlD or type .exit) PS C:\Users\75060 npm npm command Usage: npm install install all the dependencies in your project npm install foo add the foo dependency to your project npm test run this projects tests npm run foo run the script named foo npm command -h quick help on command npm -l display usage info for all commands npm help term search for help on term (in a browser) npm help npm more involved overview (in a browser)2.2 Windows11Windows 上 Node.js 的安装就简单多了。直接在官网然后双击安装包一路 Next 即可。3. 安装 OpenCode在OpenCode 官网中选择npm安装方式。OpenCode | 开源 AI 编程代理使用 root 用户执行以下命令npm i -g opencode-ai由于OpenCode 是一个Node.js 上的应用程序而Node.js 本身是跨平台的因此无论是Windows还是LinuxOpenCode 的安装都是上面相同的命令。4. OpenCode 基础命令启动 OpenCode在工作目录中执行opencode在哪个目录中运行 opencode哪个目录就是工作目录opencode 默认只能针对工作目录内部的内容包括子目录进行操作所以先提前创建好指定的项目目录并进入到该目录中再启动opencode如果发现只有 root 用户能启动 opencode是因为 opencode 在 root 的家目录下其它用户看不到没有权限解决方法rootiZuf6dza8bf7vp0zjipnhmZ:~# which opencode /root/nodejs/bin/opencode rootiZuf6dza8bf7vp0zjipnhmZ:~# cp /root/nodejs/bin/opencode /usr/local/bin/退出 OpeCodectrl c 执行两次ctrl d配置 OpenCode 主题/theme命令面板ctrl pOpenCode 的各种设置项均包含在命令面板中这里的内容我们暂时不展开其余指令可去 OpenCode 官网查看TUI | OpenCode5. 内置 Agent什么是 AgentAgent 中文名叫做“智能体”是当前 AI 应用开发领域中比较核心的概念。我们知道AI 开发工具的核心驱动力是 LLM人和 LLM 之间的交互核心就是通过“提示词”。所谓的 Agent其实就是一些事先准备好的提示词系统提示词这些提示词中描述了该 LLM “人设”、“核心功能”、“约束”等内容。用户后续通过 Agent 来和 LLM 交互的时候这些系统提示词都会自动生效使 LLM 按照预定的规则进行工作。举个例子类比对于一个普通人见到“着火了”第一时间想到的是自身的安全要先撤离到安全地方。对于消防员来说见到“着火了”第一时间考虑的则是如何保护人民群众的人身财产安全。因为在消防员的“系统提示词”中保护人民群众是高于自身的人身安全的。在 OpenCode 中内置了 4 种 AgentsPlan只回答问题不修改代码。通常用来提问/进行方案设计/做规划Build能回答问题也能修改代码。开发代码的主力 Agentgeneral独立的子 Agent有单独的上下文窗口。通常用来处理一些单独的子问题。explore用来解释当前已有的项目代码。通常用来帮助我们理解一个已经存在的项目。OpenCode 也支持自定义 Agent。我们暂时还用不到先不考虑。其中Plan 和 Build 是我们最常使用的 Agent。通过 Tab 键切换。另外的 general 和 explore则可以在对话中通过 的方式来使用。通过 ! 也可以进入 Shell 模式即可以执行终端命令6. 给 OpenCode 配置模型 LLM1. 进入配置模型界面/models2. 搜索模型按 Ctrl A可以查看所有的模型供应商供应商也可以搜索指定模型比如你买的是 MinMax 的 Coding Plan在搜索框中输入“mini”进行搜索选择 MiniMax Coding Planminimaxi.com如果买的是 token选择上面的 MiniMaxminimaxi.comminimaxi.io 是提供给海外用户的。3. 给定 API Key复制刚才在 Minimax 后台获取到的 API Key粘贴到输入框中 按 Enter 确认什么是 API Key顾名思义API Key 就是调用 API 的“钥匙”。LLM 厂商其实是提供了一组 HTTP APIOpen Code 则作为客户端调用上述 API 完成后续任务。这些 LLM 的 API 不是随便就能调用的得“花钱”。那么如何识别出当前的请求是否花钱了呢LLM 厂商就会在用户付费之后给用户分配这么一把钥匙。我们需要把 API Key 配置到 OpenCode 中此时 OpenCode 发送的 HTTP 请求就会带上这个 API Key从而使模型厂商完成“身份校验”。因此这个 API Key 千万不能泄露出去如果别人拿到了 API Key就可以使用你账户里的额度了相当于你的账户被白嫖了4. 切换模型再次使用 /models 选择模型选择 MiniMax Coding Plan 中的 MiniMax-M2.7 即可如果版本升级了选新版就行了。7. 理解 LLM 的记忆通过上述的简单任务我们感受到了使用 AI 工具进行开发通常需要“多轮对话”才能够完成任务。这时候我们发现当我们进行后续对话的时候LLM 是能记得前面的对话内容的。举个例子上述过程中当我表述“发现问题程序一启动立即提示 GameOver”此时 LLM 记得这是在开发一个“贪吃蛇”游戏。当我表述“刚才的问题仍然存在”时LLM 能够知道“刚才的问题”是指“立即提示 GameOver”的问题。LLM 是如何记住这些内容的呢其实LLM 自身是没有记忆的。LLM 能够记住前面信息的关键是 opencode 等开发工具维护了一份“上下文”。简单来说就是把前面已经产生的对话重新发送给 LLM。显而易见随着对话轮次的增加给 LLM 单次发送的内容就会越来越多每次都会携带当前会话中的所有历史消息。其中请求中的开头部分是“系统提示词”会在每次发送的请求的最上面作为 LLM 的基本规则。标记了“用户说”的部分称为“用户提示词”也就是每轮对话用户输入的内容。标记了“LLM 说”的部分称为“AI 提示词”也就是每轮对话 LLM 返回的内容。这个内容不能无限增长。这个上限称为 LLM 的“上下文窗口大小”。目前主流的 LLM 上下文窗口能够达到 1MB100 万个 ASCII 字符几十万个汉字在 OpenCode 右侧面板提示了当前上下文窗口的使用量当上下文过长时即使没有达到窗口上限LLM 也容易出现“注意力不集中”的现象导致出现更大概率“答非所问”。因此开发时我们需要控制上下文的大小使 LLM 能够聚焦于当前任务。使用 SPEC.md 保存项目中的关键信息OpenCode 会把这部分作为系统提示词相当于持久记忆使用 /compact 或 /summarize 压缩上下文使用 /new 创建新的会话针对不同的功能点使用不同的 session 来进行开发