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

相关推荐
Li emily5 小时前
解决了加密货币api多币种订阅时的数据乱序问题
人工智能·python·api·fastapi
山川绿水5 小时前
bugku——PWN——overflow2
人工智能·web安全·网络安全
程序员cxuan5 小时前
微信读书官方发了 skills,把我给秀麻了。
人工智能·后端·程序员
fake_ss1985 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
nassi_6 小时前
对AI工程问题的一些思考
大数据·人工智能·hadoop
AI技术控6 小时前
《Transformers are Inherently Succinct》论文解读:从“能表达什么”到“多紧凑地表达”
人工智能·python·深度学习·机器学习·自然语言处理
蔡俊锋6 小时前
AI记忆压缩术:从305GB到7.4GB的魔法
人工智能·ai·ai 记忆
Upsy-Daisy6 小时前
AI Agent 项目学习笔记(二):Spring AI 与 ChatClient 主链路解析
人工智能·笔记·学习
zhangxingchao6 小时前
AI应用开发六:企业知识库
前端·人工智能·后端
Terrence Shen7 小时前
关于传统软件工程后端技术和当代AI智能体agent构建的harness engineering的一点思考
人工智能·软件工程