跳到主要内容

智能体工作区

每个智能体在网关主机上都有一个专用的 工作区 (Workspace) 目录。本页面介绍了它们的组织方式、为什么隔离很重要,以及如何对其进行备份。

什么是工作区?

工作区是智能体“居住”的地方。它包含:

  • 记忆 (Memory):笔记、长短期日志和向量索引。
  • 状态 (State):会话副本、配置和身份验证配置文件。
  • 文件 (Files):智能体可以读取或写入的任何文档或代码(如果未启用沙箱,则受限于工作区根目录)。

默认位置

工作区通常位于: ~/.clawdbot/agents/<agentId>/

您可以按智能体自定义此路径:

{
agent: {
workspace: "~/clawd"
}
}

隔离:为什么它很重要

Clawdbot 默认强制执行严格的 智能体隔离

  • 无共享凭据:每个智能体都有自己的 auth-profiles.json。登录一个智能体不会使另一个智能体登录。
  • 无共享会话:智能体 A 看不到智能体 B 的对话。
  • 无路径穿越:默认情况下,智能体的文件操作被限制在工作区根目录下(除非配置了显式的沙箱挂载)。

这种设计允许您运行多个具有不同角色或权限的智能体(例如,“个人”智能体具有完整的文件系统访问权限,而“公共”智能体则被沙箱化)。

引导流程 (Bootstrap)

当智能体第一次启动时(通过 clawdbot agents run 或通过网关),它会执行引导流程:

  1. 目录创建:确保工作区及其子目录(agent/, memory/, sessions/)存在。
  2. 身份验证同步:如果可用,从外部 CLI 同步 OAuth 令牌。
  3. 状态加载:加载 clawdbot.jsonagent-state.json
  4. Git 初始化 (可选):如果配置了,则初始化本地 Git 仓库进行备份。

本地 Git 备份 (Auto-Save)

Clawdbot 可以自动跟踪工作区中的更改。这为您提供了一个“无限撤销”缓冲区,并允许您在出现问题时恢复智能体状态。

启用自动备份:

{
agent: {
gitBackup: {
enabled: true,
intervalMinutes: 60,
commitMessage: "Agent workspace auto-save"
}
}
}

注意:

  • 备份存储在本地工作区的 .git 目录中。
  • 它不会推送到远程仓库(除非您手动配置了远程仓库)。
  • auth-profiles.json 默认被忽略以防止凭据泄漏。

清理与重置

要重置智能体的工作区而不删除智能体定义:

clawdbot agents reset <agentId> --workspace

要删除所有内容(包括会话和定义):

clawdbot agents remove <agentId> --force

故障排除

  • 权限错误:确保运行 clawdbot-gateway 的用户具有对工作区目录的读写权限。
  • 磁盘空间:由于保存了详细的日志和会话副本,频繁活动的智能体的工作区可能会变大。使用 clawdbot agents status --deep 来监控大小。