113、【Agent】【OpenCode】项目配置(package.json)

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

背景

上篇 blog

【Agent】【OpenCode】Skill 工具提示词

分析了最后一个工具 Skill,Skill 工具可以加载一个专门的技能,所谓的技能可以提供特定领域的指令和工作流,其唯一的必选参数 name 用来描述要加载的技能名称,其描述文本为动态加载,当 list.length == 0 时,也就是当前没有 Skill,OpenCode 客户端会告知当前没有可用技能,而当 list.length > 0 时,客户端就会拼接出一段结构严谨的说明文本,告知触发条件和预期结果,并遵循渐进式披露规则(只有当 AI 决定使用某个技能并真正调用 Skill 工具之后,详细的指令才会被注入进来,实现按需加载,否则只展示技能名字和简介),下面继续分析

OpenCode

之前 blog

【Agent】【OpenCode】源码构建(依赖安装)

【Agent】【OpenCode】源码构建(项目构建)

在分析源码构建的时候,略微有提到 package.json,下面涉及到项目配置,来详细分析下这个文件

package.json 是 Node.js 和前端项目的身份证和核心配置文件(OpenCode 客户端相对于 AI 大模型来说,也可以理解为前端),该文件位于项目根目录,有如下作用

  • 记录项目的基本信息 :比如项目名称(name),版本号(version),作者,入口文件 index.js(main)等元数据信息

管理依赖包(最核心的功能之一):把项目需要的第三方库分类地记录下来,防止生产环境误装开发工具,有两种依赖类型

  • dependencies(生产依赖) :项目运行时必须的包,部署上线时也要带上
  • devDependencies(开发依赖) :只在本地开发和构建阶段用的工具,上线时不需要
  • 配置快捷脚本命令(scripts) :可以把复杂的命令行操作变成一键执行的快捷方式,比如在里面配置了 bun run script/build.ts,后面在终端里只需要输入 bun run build 就能完成打包工作,不用再输入一长串命令
  • 提供其他工程化配置:很多现代前端工具也会把自定义配置直接写在里面,比如浏览器兼容范围(browserlist),ESLint 规则(eslintConfig)等

新建项目的时候,在终端运行 npm init(会一步步问问题),或者 npm init -y(直接跳过问答,用默认配置生成),就能自动创建一个基础的 package.json 骨架

另外,package.json 既可以由开发者手动更新,也会被包管理器(比如 npm,bun 等)自动更新 ,开发者可能会发现在执行 bun install 时,package.json 被 modified 修改了,这就是因为 Bun 在整理或规范化这个文件:

  • 开发者手动更新:可以直接用编辑器打开,添加依赖,修改版本号或者编写脚本
  • 命令行自动更新 :当执行类似 bun add 或者 npm install 等命令时,包管理器会自动把新包写入 dependencies 字段中

单纯运行 bun install(没有指定新包),理论上来说应该去读取依赖并安装 ,如果发现 package.json 还是被改了,大概原因是因为 JSON 格式化与键值排序,比如

Bun 作为一个追求极致性能和高标准的现代工具,在读取 package.json 后,会按照自己内部的规范对 JOSN 结构进行重新排版 ,比如把 dependencies 里的包名按字母顺序重新排列,或者调整某些字段的先后顺序,这种操作不会改变项目的实际逻辑,但在 Git 看来,文件内容确实发生了变化

最后再提醒下,虽然 package.json 可以手动修改,但项目中另一个伴随文件(对 Bun 来说是 bun.lock,对 Npm 来说是 package-lock.json)是绝对禁止修改的,这俩文件是共生协作的关系

  • package.json 定义了项目允许安装的版本范围(提供灵活性)
  • Lock 文件则锁定了实际安装的精确版本和依赖树,确保团队环境的一致性

所以 Bun 在后台做的那些代码格式化或结构优化,只要程序能正常构建运行,这种修改是无害的,如果觉得这种 Git 报的 modified 变动看不过去,可以在确认无误后直接提交


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

【Agent】【OpenCode】项目配置(package.json 和 bun.lock)

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
回眸&啤酒鸭3 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅3 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein3 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu3 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
1点东西3 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
wukangjupingbb3 天前
智能网联汽车安全能力框架
人工智能