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

相关推荐
非优秀程序员15 分钟前
智能体的构成--深入探讨Anthropic、OpenAI、Perplexity和LangChain究竟在构建什么。
人工智能·架构·开源
却道天凉_好个秋17 分钟前
卷积神经网络CNN(七):感受野
人工智能·python·深度学习·神经网络·感受野
码点滴23 分钟前
从“失忆症“到“数智分身“:Hermes Agent 如何重塑你的 AI 交互体验?
人工智能·架构·prompt·ai编程·hermes
码云数智-园园40 分钟前
独立站建站平台有哪些?
人工智能
PhotonixBay44 分钟前
激光共聚焦显微镜的非接触式原位表面表征测量
人工智能·测试工具
如去44 分钟前
AI重塑制造业:从“自动化”到“智慧工厂”的全链条革命
人工智能
Cder44 分钟前
用 React + Ink 在终端里「优雅搜索」:开源 CLI 设计与非交互模式实践
前端·agent
盘古信息IMS1 小时前
九宸纳百川,数智启新程|盘古信息与合肥昊邦科技合资成立合肥九宸智能,共筑智造新生态
大数据·人工智能
颜酱1 小时前
LLM为核,上下文为限:拆解AI Agent生态的底层逻辑
前端·人工智能
AI技术增长1 小时前
Pytorch图像去噪实战(四):Attention UNet图像去噪实战,让模型重点恢复边缘和纹理区域
人工智能·pytorch·python