给 Agent 安装 packages
了解 Buda 中 /space 与 /agent 的目录边界,以及为什么推荐用 Homebrew 给 Agent 安装额外依赖。
在 Buda 里,Agent 可以安装额外的系统包,例如 ffmpeg、yt-dlp、imagemagick 或 jq。推荐方式是让 Agent 直接使用:
brew install <package>这样安装的内容会进入 Agent 的用户目录,而不是写进共享空间。
先理解两个目录
每个 Agent 运行时,通常会看到两个关键目录:
| 目录 | 作用 | 适合放什么 |
|---|---|---|
/space | Space 级共享目录 | 团队共享文件、跨 Agent 共用资料、可协作内容 |
/agent | 当前 Agent 的私有用户目录 | 用户级安装、Agent 自己的配置、缓存、局部依赖 |
可以把它理解成:
/space是整个空间站共享的工作区/agent是这个 Agent 自己的 home 目录
如果你还没看过整体说明,建议先读 Agent。那篇会把 /agent、/space、/system 的关系一次讲清楚。
为什么安装包要放到 /agent
我们推荐把额外安装的 packages 放在 /agent 侧,核心原因是隔离和可持续性:
- 不污染共享空间。一个 Agent 新装的依赖,不会直接把
/space变成所有人都要接受的运行环境。 - 更符合“用户目录安装”的习惯。很多 CLI、缓存、配置文件天然就应该跟随当前 Agent,而不是跟随整个 Space。
- 便于不同 Agent 做不同扩展。一个 Agent 可以偏视频处理,另一个 Agent 可以偏抓取或文档处理,彼此互不干扰。
- 重启后仍可保留。Buda 默认提供的 Homebrew 安装位置在
/agent/.linuxbrew/,属于挂载卷的一部分,适合长期复用。
当前模板里已经明确提供了 brew,并约定 Homebrew 安装在 /agent/.linuxbrew/。因此额外系统依赖优先走 brew install,而不是手动散装到共享目录。
推荐给 Agent 的指令写法
如果你希望 Agent 在缺少系统依赖时自行补装,可以在它的说明或 system prompt 里明确写:
如果任务依赖缺失的系统包,优先使用 Homebrew 安装:
- 使用 `brew install <package>`
- 不要把安装内容写到 /space
- 默认把用户级工具、缓存和配置放在 /agent这样 Agent 会更稳定地遵守目录边界。
什么时候用 /space,什么时候用 /agent
适合放在 /space
- 团队都要读写的项目文件
- 要被多个 Agent 共同消费的知识库
- 明确需要共享的脚本、模板、产物
适合放在 /agent
brew安装出来的工具链- Agent 自己的配置文件
- 临时构建产物、缓存、用户级数据
- 只服务于单个 Agent 的扩展能力
一个典型例子
比如你希望一个视频处理 Agent 自动转码:
brew install ffmpeg安装完成后:
- 工具本身属于
/agent侧的用户安装 - 真正要处理的视频文件,仍然可以来自
/space - 结果文件也可以按需要写回
/space
也就是说:
- 共享数据走
/space - Agent 自己的运行环境走
/agent
最佳实践
- 默认先把“包管理”和“运行环境”理解为
/agent范畴 - 默认先把“协作文档”和“共享项目文件”理解为
/space范畴 - 让 Agent 优先用
brew install安装系统依赖 - 不要把 Homebrew、缓存目录、用户配置硬塞进
/space
这样可以保持空间共享内容干净,也让每个 Agent 的能力扩展更可控。