【用 Vibe Coding 实现的 C++17 在线判题系统】OpenCode 入门指南:从环境搭建到上下文管理

文章目录

  • [一、开发工具介绍(进行 Vibe Coding)](#一、开发工具介绍(进行 Vibe Coding))
    • [1. VS Code 发行版](#1. VS Code 发行版)
    • [2. CLI 工具](#2. CLI 工具)
    • [3. ⼀句话搭建应用程序(适合小白开发者)](#3. ⼀句话搭建应用程序(适合小白开发者))
  • 二、OpenCode的安装
    • [1. Node.js的介绍 与 安装](#1. Node.js的介绍 与 安装)
    • [2. Node.js 的常用命令(npm的介绍)](#2. Node.js 的常用命令(npm的介绍))
    • [3. 安装 OpenCode](#3. 安装 OpenCode)
  • [三、opencode中的 基础命令](#三、opencode中的 基础命令)
    • [1. 启动OpenCode 和 退出OpenCode](#1. 启动OpenCode 和 退出OpenCode)
    • [2. 配置主题](#2. 配置主题)
    • [3. 配置模型](#3. 配置模型)
    • [4. 进入命令面板](#4. 进入命令面板)
    • [5. 压缩上下文](#5. 压缩上下文)
    • [6. 切换会话 和 创建新会话](#6. 切换会话 和 创建新会话)
    • [7. 选择skill 和 选择文件](#7. 选择skill 和 选择文件)
  • [四、opencode的 基本结构](#四、opencode的 基本结构)
    • [1. 内置 Agent](#1. 内置 Agent)
    • [2. 理解 LLM 的记忆(上下文)](#2. 理解 LLM 的记忆(上下文))

一、开发工具介绍(进行 Vibe Coding)

要进行 Vibe Coding, 首先需要使用一款 AI 开发工具. 目前来看, AI 开发工具主要有三个流派:

(1) VSCode 发行版

(2) 终端 CLI 工具

(3) "⼀句话搭建应用程序" 系列

1. VS Code 发行版

VS Code 是同学们非常熟悉的开发工具了,也是业界最流行的开发工具 (没有之一)

同时, VSCode 有⾮常良好的开放生态。当 AI 浪潮吹来的时候,基于 VSCode 进行 "魔改" 成了⼀个性价比很高的选择。

典型代表:

• Cursor

• Trae(字节)

• Kiro(亚马逊)

• Antigravitiy(谷歌)

• Code Buddy(腾讯)

• QCoder(阿里)

• ...

这个系列的⼯具本身使用起来都非常好上手,已经熟悉 VSCode 的同学们应该都很容易驾驭。

2. CLI 工具

CLI 全称为 "Command Line Interface",即为在终端中的 "命令行界面",通过命令的方式和用户进行交互。

典型代表:

• Claude Code

• Codex

• Gemini CLI

• OpenCode

• ...

3. ⼀句话搭建应用程序(适合小白开发者)

典型代表:

Devin

atoms

秒哒

码上飞

• ...

这部分产品不需要搭建任何开发环境,直接在网页上和 AI 沟通,完成开发过程。目前这种形态的产品还处于发展阶段,还没有被大部分研发团队认可和使用。

二、OpenCode的安装

1. Node.js的介绍 与 安装

安装OpenCode前,得先安装 Node.js

Node.js 是啥?
大家肯定都听说过 JavaScript , 也知道 JavaScript 是运行在浏览器上的语言。
浏览器中用来解释运行 JavaScript 的模块被称为 "JavaScript 引擎", 其中最知名的就是 Chrome 中的引擎 V8 Worker .
后来, 有大佬把 V8 Worker 单独拎出来,封装了⼀下,赋予其更多的能力 (比如可以调用系统 API), 此时就得到了 Node.js .
Node.js 使 JavaScript 的应用场景更广泛了, 不仅仅可以进行 Web 前端开发,还能进行后端开发和桌面应用开发。
目前我们使用的 AI CLI 系列的开发工具,大部分都是使用 Node.js 开发的。

  • 在 linux系统下安装(Ubuntu 24.04)

在 Node.js 官网 https://nodejs.org/zh-cn/download 提供了下载安装的方案.

但是对于国内的网络环境来说,上述操作有⼀定概率失败。

此处我们使用 apt 的方式安装。

(1)引入 Node.js 的 apt 源.

在 root 用户下:

bash 复制代码
curl -sL https://deb.nodesource.com/setup_24.x | bash -

对于 Ubuntu 24.04 来说, apt 默认源中的 Node.js 版本较低, 通常不满足 AI 开发工具的需求.
因此我们需要额外安装源, 使 apt 可以安装高版本的 Node.js , 此处是 v24 版本.

(2) 安装 Node.js

bash 复制代码
apt install nodejs
  • 在 Windows系统下安装(Windows 11)

Windows 上 Node.js 的安装就简单多了,直接在官网下载

然后双击安装包,⼀路 Next 即可。

2. Node.js 的常用命令(npm的介绍)

在linux下安装好 Node.js 后,我们会获得 node 和 npm 两个命令。

使用 node命令 可以进入Node.js(.exit命令 可以退出)

npm < command >

什么是 npm ?
npm 是 Node.js 内置的 "包管理工具"。类似于 Ubuntu 的 apt。
只不过 npm 下载的软件包是给 Node.js 使用的, 而 apt 下载的软件包则是个 Ubuntu 系统使用的.

3. 安装 OpenCode

在 OpenCode 官网中, 选择 "npm" 安装方式。

https://opencode.ai/zh

使用下列命令即可完成安装 (在 root 用户下执行):

bash 复制代码
sudo npm i -g opencode-ai

由于 OpenCode 是⼀个 Node.js 上的应用程序,而 Node.js 本身是跨平台的。
因此无论是 Windows 还是 Linux,OpenCode 的安装都是上面相同的命令.

三、opencode中的 基础命令

1. 启动OpenCode 和 退出OpenCode

  • 启动OpenCode 的命令(在linux终端的 命令行输入)
bash 复制代码
opencode

注意:

在哪个目录中运行 opencode,哪个目录就是 "工作目录"。opencode 默认只能针对⼯作目录内部的内容(包括子⽬录)进行操作。

因此我们使用 opencode 编写代码,最好先提前创建好指定的项目 目录,并进入到该目录中,再启动 opencode

  • 退出OpenCode 的方法(linux下)
bash 复制代码
ctrl + c

2. 配置主题

bash 复制代码
/themes

然后通过 上下方向键 选择不同主题, 按 enter 确认

3. 配置模型

bash 复制代码
/models

可以直接选择接入好的模型进行使用

  • 可以手动接入更多模型进行使用:

ctrl+a:进入 model provider 的选择界面

选择一款 model provider,输入API key,模型就成功接入了:

4. 进入命令面板

bash 复制代码
ctrl + p

OpenCode 的各种设置项均包含在命令面板中.

5. 压缩上下文

bash 复制代码
/compact

/compact 命令可以对当前会话上下文进行压缩总结,减少会话上下文的使用

6. 切换会话 和 创建新会话

  • 切换会话的命令:
bash 复制代码
/sessions
  • 创建新会话的命令:
bash 复制代码
/new

7. 选择skill 和 选择文件

  • 选择skill的命令:
bash 复制代码
/skills
  • 选择项目下文件的方法:
bash 复制代码
@对应路径下文件名

四、opencode的 基本结构

1. 内置 Agent

什么是 Agent
Agent 中文名叫做 "智能体", 是当前 AI 应用开发领域中比较核心的概念.
我们知道,AI 开发工具的核心驱动力是 LLM,人 和 LLM 之间的交互,核心就是通过 "提示词".
所谓的 Agent,其实就是⼀些事先准备好的提示词 (系统提示词),这些提示词中描述了该 LLM的 "人设","核心功能","约束" 等内容。用户后续通过 Agent 来和 LLM 交互的时候,这些系统提示词都会自动生效,使 LLM 按照预定的规则进行工作。
举个例⼦类比:
对于⼀个普通人,见到 "着火了" ,第⼀时间想到的是自身的安全,要先撤离到安全地方。
对于消防员来说,见到 "着火了",第⼀时间考虑的则是如何保护人民群众的人身财产安全。
因为在消防员的 "系统提示词" 中,保护人民群众是⾼于自⾝的人身安全的。

在 OpenCode 中,内置了 4 种 Agents:

  • Plan: 只回答问题,不修改代码。通常用来提问/进行方案设计/做规划
  • Build: 能回答问题,也能修改代码。开发代码的主力 Agent
  • general: 独立的子 Agent,有单独的上下文窗口。通常用来处理⼀些单独的子问题。
  • explore: 用来解释当前已有的项目代码。通常用来帮助我们理解⼀个已经存在的项目。

OpenCode 也支持自定义 Agent。有需求可以去了解一下

其中,Plan 和 Build 是我们最常使用的 Agent。通过 Tab 键切换。

另外的 general 和 explore ,则可以在对话中通过 @ 的方式来使用。

2. 理解 LLM 的记忆(上下文)

使用 AI ⼯具进行开发,通常需要 "多轮对话" 才能够完成任务。这时候我们发现,当我们进行后续对话的时候,LLM 是能记得前⾯的对话内容的

LLM 是如何记住这些内容的呢?

其实,LLM 自身是没有记忆的。LLM 能够记住前面信息的关键,是 opencode 等开发⼯具,维护了⼀份 "上下文"。

理解 "上下文"
简单来说,就是把前面已经产生的对话,重新发送给 LLM .

显而易见,随着对话轮次的增加,给 LLM 单次发送的内容就会越来越多(每次都会携带当前会话中的所有历史消息)。其中:

  • 请求中的开头部分是 "系统提示词",会在每次发送的请求的最上面,作为 LLM 的基本规则。
  • 标记了 "用户说" 的部分,称为 "⽤⼾提示词",也就是每轮对话用户输入的内容。
  • 标记了 " LLM 说" 的部分,称为 "AI 提示词",也就是每轮对话 LLM 返回的内容。

这个内容不能无限增长。这个上限称为 LLM 的 "上下文窗口大小"

目前,主流的 LLM 上下文窗口都能够达到 1 MB(100万 个 ascii 字符,几十万个汉字)

在 OpenCode 右侧面板,提示了当前上下文窗口的使用量:

注意:
当上下文过长时,即使没有达到窗口上限,LLM 也容易出现 "注意力不集中" 的现象,导致出现更大概率的 "答非所问".
因此,开发时,我们需要控制上下文的大小,使 LLM 能够聚焦于当前任务.
(1)使用 AGENTS.md 保存项目中的关键信息,OpenCode 会把这部分作为系统提示词,相当于持久记忆
(2)使用 /compact 或 /summarize 压缩上下文
(3)使用 /new 创建新的会话,针对不同的功能点,使用不同的 session 来进行开发


相关推荐
mlidongfeng1 小时前
[AI][C++26] SIMD 编程模型思考
开发语言·c++·人工智能
j7~1 小时前
【Linux】二十七.线程篇四《Linux多线程编程:线程互斥(互斥量的底层到封装)、线程安全和冲入、死锁》---详解
linux·开发语言·c++·线程安全·死锁·线程互斥·重入
ClouGence1 小时前
无需 API 配置,DeepSeek-V4-Flash 正式版落地使用指南
agent·ai编程·deepseek
啦啦啦啦啦zzzz1 小时前
贪心算法和动态规划
c++·算法·贪心算法·动态规划
我不是懒洋洋1 小时前
从零实现一个分布式数据集成:Airbyte的核心设计
c++
用户0510122572961 小时前
DAY 5-智能指针与 C++ 内存管理
c++·面试
(Charon)1 小时前
【C++】手写 MySQL 连接池(三):异步任务队列与工作线程
c语言·c++
赫媒派2 小时前
Phodal AGENTS.md 五步法实战:不让 Agent 每次重猜你的项目
ai编程
用户92044277194572 小时前
异构算力实战:RK3588 + 昇腾 310B 部署 K8s + KubeSphere 并实现 NPU 统一调度
ai编程