Buda LogoBuda

给 Agent 安装 packages

了解 Buda 中 /space 与 /agent 的目录边界,以及为什么推荐用 Homebrew 给 Agent 安装额外依赖。

在 Buda 里,Agent 可以安装额外的系统包,例如 ffmpegyt-dlpimagemagickjq。推荐方式是让 Agent 直接使用:

brew install <package>

这样安装的内容会进入 Agent 的用户目录,而不是写进共享空间。

先理解两个目录

每个 Agent 运行时,通常会看到两个关键目录:

目录作用适合放什么
/spaceSpace 级共享目录团队共享文件、跨 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 的能力扩展更可控。

继续阅读

On this page