16、【Agent】【OpenCode】源码构建(Bun介绍)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】对话测试(免费模型)

安装了 OpenCode,并进入了 OpenCode 的终端用户界面 TUI,并查看了 OpenCode 关联可用的大模型,不过由于刚安装,没有配置任何 AI 模型提供商 Provider,所以可用的外部大模型为 0 credentials,然后在对话框中,虽然没有配置任何大模型,还是可以正常对话,并且右侧还有上下文以及 tokens 的消耗显示,很明显 OpenCode 是使用了大模型进行回复,接着安装了 tshark 进行了实验,抓取到了 OpenCode 和 opencode.ai 之间的流量交互,并提醒 OpenCode 会上传当前项目的上下文(比如文件列表和部分代码),要注意隐私保护,下面继续分析

OpenCode

终端输入

bash 复制代码
git clone https://github.com/anomalyco/opencode.git

可以下载 Github 上 OpenCode 的源码,如果访问速度较慢,可以用 Gitee 今天刚同步的仓库

bash 复制代码
git clone https://gitee.com/hitweston/opencode.git

终端输入

bash 复制代码
cd opencode

进入 OpenCode 源码目录,接着输入

bash 复制代码
head package.json

查看 OpenCode 包信息如下

这里使用的 head 是个很常用的基础命令,可以用来显示文件的开头部分(默认前 10 行),方便快速查看文件内容,而不用打开整个文件(对大文件很有用),这里是用来快速检查 package.json 文件的开头内容,来看 OpenCode 项目是 Node.js 还是 Bun 项目的配置文件,从上面的结果来看,OpenCode 是个典型的 JavaScript/TypeScript 的项目,并且该项目规定了必须使用 Bun 包管理器进行安装,推荐版本的是

javascript 复制代码
"packageManager": "bun@1.3.10"

这里提到的 Bun 是一个超快的 JavaScript 运行时(runtime)和工具集,其目标是替代 Node.js + npm + Webpack + Babel 等一整套传统前端工具链,可以理解为 Node.js 的现代化,一体化,高性能替代品,Bun 方案有三大核心功能

功能 传统方案 Bun 方案
运行 JS/TS 代码 node app.js bun run app.ts
安装依赖包 npm install bun install
打包&构建项目 Webpack/Vite/Rollup bun build(内置)

这些功能可以全部由一个二进制文件 bun 完成,除了功能强大,Bun 的速度还特别快(得益于其实现使用的 Zig 语言,比 C 更高效)

  • 启动速度比 Node.js 快 10~100 倍
  • 包安装速度 比 npm 快 10~100倍(实测 bun install 可以几秒装完 React 全家桶),npm install 装 1000 个包,可能要 1min,而 bun install 则可以快到 3~5s

此外,bun 还原生支持 TypeScript,JSX,ESM 等,无需额外配置

下面再对比下 npm/Node.js 和 Bun 的基本信息

对比项 npm / Node.js Bun
开发者 Joyent,OpenJS Jarred Sumner(个人开发者)
首发时间 2009 年 2022 年
兼容性 - 完全兼容 Node.js API(大部分场景可直接替换)
包管理 npm / yam 内置 bun install(兼容 npm registry)
TypeScript 需要 ts-node / 编译 原生直接运行 .ts 文件

比如 *.js 这种 JavaScript 纯文件,既可以用 node 运行,也可以用 bun 运行!


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog

相关推荐
frankzch6 分钟前
Claude 刷新量子电路最优:LLM 与评估器的进化循环怎么搭
人工智能·深度学习·机器学习·语言模型·量子计算
郝学胜_神的一滴7 分钟前
游戏设计:原型与开发 05:读懂动态层,理解玩家如何活在游戏世界
人工智能·程序员
用户6698295485299 分钟前
同一句话,粤语要贵 24%:我量了 236 对双语文档和 4 种写法
人工智能
阿屿14 分钟前
从零手搓 AI 伴侣:Java + 大模型 + 多模态的工程化踩坑实录
人工智能
const_qiu16 分钟前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
cubestudio18 分钟前
云原生分布式训练怎么调度才不浪费算力?CubeStudio 分布式训练与加速架构解析(CRD+Operator / gang 调度 / 亲和反亲和 / GPU 利用率 / 共享 GPU)
人工智能·云原生·gpu
老马识码19 分钟前
7541 万笔,2424 万美元:x402 真正解决了什么?
人工智能
大明二代20 分钟前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
zhangyy042322 分钟前
agent 说"做完了",它真做完了吗:16 个任务、四种判据的一次实测
人工智能
鶴哥只手遮天22 分钟前
Spring AI 2.0.1 深度解析-第 22 章 Spring Boot 集成:自动配置、Properties 与条件装配
java·人工智能·开源