让两个Agent软件共用一套记忆


让两个Agent软件共用一套记忆

📖 适用场景

你可能需要这篇文章,如果:

  • ✅ 同时使用多个Agent软件(如OpenClaw + 另一个AI助手)
  • ✅ 希望它们共享同一套长期记忆和每日日记
  • ✅ 想通过Git同步记忆文件(单位/家里两边工作)
  • ✅ 把Agent workspace集成到现有项目(如Hexo博客)

🤔 核心问题

问题1:不同软件对记忆文件路径要求不同

  • OpenClaw默认:读取 {workspace}/MEMORY.md(根目录)
  • 另一个软件默认:读取 {workspace}/memory/MEMORY.md(memory子文件夹)

结果:两边记忆不同步!

问题2:Workspace位置选择

  • 默认位置:C:\Users\Administrator\.qclaw\workspace-agent-xxx
  • 问题:无法通过Git同步,换电脑要重新配置

理想方案:把workspace放到可以通过Git同步的目录(如Hexo博客)


🎯 解决方案概览

  1. 迁移Workspace到可同步目录
  2. 统一记忆文件路径(通过符号链接或配置调整)
  3. 配置Skills路径(让技能也能Git同步)
  4. 处理Hexo博客兼容性(防止被当成文章渲染)
  5. 设置Git同步(选择性同步记忆文件)

🚀 详细操作步骤

第一步:迁移Workspace

1.1 查看当前配置

# 查看当前workspace路径
openclaw config get | Select-String -Pattern "workspace"

输出示例:

"workspace": "C:\\Users\\Administrator\\.qclaw\\workspace-agent-fd5ba866"

1.2 复制配置文件到新位置

$sourcePath = "C:\Users\Administrator\.qclaw\workspace-agent-fd5ba866"
$targetPath = "D:\temp\guotugongjuxiang\source\_posts\.workbuddy"

# 需要复制的核心配置文件
$filesToCopy = @(
    "AGENTS.md",    # 工作规则
    "SOUL.md",      # 人格设定
    "USER.md",      # 用户信息
    "TOOLS.md",     # 工具配置
    "MEMORY.md",    # 长期记忆
    "HEARTBEAT.md", # 心跳任务
    "IDENTITY.md",  # 身份信息
    "DREAMS.md"     # 梦境记录(如已关闭可跳过)
)

foreach ($file in $filesToCopy) {
    $sourceFile = Join-Path $sourcePath $file
    $targetFile = Join-Path $targetPath $file
    
    if (Test-Path $sourceFile) {
        if (-not (Test-Path $targetFile)) {
            Copy-Item -Path $sourceFile -Destination $targetFile -Force
            Write-Host "✅ 已复制: $file"
        } else {
            Write-Host "⚠️  已存在(保留新位置): $file"
        }
    }
}

1.3 修改OpenClaw配置

# 方法1:使用OpenClaw API修改(推荐)
openclaw config patch '{
  "agents": {
    "list": [
      {
        "id": "agent-fd5ba866",
        "workspace": "D:\\temp\\guotugongjuxiang\\source\\_posts\\.workbuddy"
      }
    ]
  }
}'

或通过gateway工具(在OpenClaw对话中):

使用gateway工具,action=config.patch,修改agent-fd5ba866的workspace路径

1.4 重启OpenClaw

配置修改后会自动触发重启,或手动重启:

openclaw gateway restart

第二步:统一记忆文件路径

2.1 问题分析

  • OpenClaw默认读 {workspace}/MEMORY.md
  • 另一个软件读 {workspace}/memory/MEMORY.md
  • 需要让两边指向同一个文件

2.2 方案A:符号链接(推荐,但需管理员权限)

# 以管理员身份运行CMD,执行:
mklink "D:\temp\guotugongjuxiang\source\_posts\.workbuddy\MEMORY.md" ^
       "D:\temp\guotugongjuxiang\source\_posts\.workbuddy\memory\MEMORY.md"

优点

  • 两边都能用
  • 修改任意一个,另一个自动同步

缺点

  • 需要管理员权限
  • Windows符号链接可能被Git误处理

2.3 方案B:修改OpenClaw配置(推荐,无需特殊权限)

思路:让OpenClaw也读 memory/MEMORY.md

  1. 确保 memory/MEMORY.md 存在且是最新版本
$workspacePath = "D:\temp\guotugongjuxiang\source\_posts\.workbuddy"

# 如果根目录的MEMORY.md更新,同步到memory文件夹
Copy-Item -Path (Join-Path $workspacePath "MEMORY.md") `
          -Destination (Join-Path $workspacePath "memory\MEMORY.md") -Force
  1. 修改 AGENTS.md,明确指定记忆文件路径

编辑 D:\temp\guotugongjuxiang\source\_posts\.workbuddy\AGENTS.md,找到 ## Memory 部分,修改为:

## Memory

You wake up fresh each session. These files are your continuity:

- **Daily notes:** `memory/YYYY-MM-DD.md` (create `memory/` if needed) — raw logs of what happened
- **Long-term:** `memory/MEMORY.md` — your curated memories, like a human's long-term memory

⚠️ **Important**: The long-term memory file is at `memory/MEMORY.md` (NOT root `MEMORY.md`). 
This is to be compatible with other software that expects memory files in the `memory/` folder.
  1. 删除根目录的旧 MEMORY.md
$workspacePath = "D:\temp\guotugongjuxiang\source\_posts\.workbuddy"
Remove-Item -Path (Join-Path $workspacePath "MEMORY.md") -Force
  1. 验证OpenClaw能正常工作

重启后,OpenClaw会:

  • AGENTS.md
  • 看到记忆文件路径是 memory/MEMORY.md
  • 从这个位置加载长期记忆

第三步:配置Skills路径(可选)

3.1 为什么要把Skills放workspace下?

  • Git同步:单位和家里电脑都能用
  • 版本管理:通过Git追踪技能修改历史
  • 集中管理:配置、记忆、技能都在一个文件夹

3.2 修改OpenClaw配置

# 使用gateway工具(在OpenClaw对话中)
# action=config.patch,添加skills.load.extraDirs

配置内容:

{
  "skills": {
    "load": {
      "extraDirs": [
        "D:\\temp\\guotugongjuxiang\\source\\_posts\\.workbuddy\\skills",
        "C:\\Program Files\\QClaw\\v0.2.25.551\\resources\\openclaw\\config\\skills",
        "~/.openclaw/workspace/skills",
        "~/.agents/skills",
        "C:\\Users\\Administrator\\.qclaw\\skills",
        "C:\\Users\\Administrator\\.qclaw\\skillhub-skills",
        "~/.openclaw/skills"
      ]
    }
  }
}

关键点

  • ✅ 把workspace skills路径放在最前面(优先级最高)
  • ✅ 这样你可以方便地覆盖系统技能

3.3 创建Skills文件夹

$workspacePath = "D:\temp\guotugongjuxiang\source\_posts\.workbuddy"
$skillsPath = Join-Path $workspacePath "skills"

if (-not (Test-Path $skillsPath)) {
    New-Item -Path $skillsPath -ItemType Directory -Force
    Write-Host "✅ 已创建skills文件夹:$skillsPath"
}

3.4 迁移现有技能(可选)

# 查看当前已安装的技能
Get-ChildItem -Path "C:\Users\Administrator\.qclaw\skills" | Select-Object Name

# 复制技能到workspace(举例)
Copy-Item -Path "C:\Users\Administrator\.qclaw\skills\出试题" `
        -Destination "D:\temp\guotugongjuxiang\source\_posts\.workbuddy\skills\" `
        -Recurse -Force

第四步:处理Hexo博客兼容性

4.1 问题

Hexo会把 source/_posts/ 下的所有 .md 文件当成博客文章生成HTML。

你的workspace在 .workbuddy 文件夹,里面的 .md 文件(如 AGENTS.mdMEMORY.md)也会被处理!

4.2 解决方案

方法1:修改Hexo配置(推荐)

编辑 D:\temp\guotugongjuxiang\_config.yml,添加:

# 防止 .workbuddy 被渲染
skip_render:
  - ".workbuddy/**"
  - ".workbuddy/**/*"

方法2:在 .workbuddy 文件夹中添加空 _config.yml

New-Item -Path "D:\temp\guotugongjuxiang\source\_posts\.workbuddy\_config.yml" `
         -ItemType File -Force

Hexo会自动忽略有 _config.yml 的子文件夹。

4.3 验证

# 本地预览
cd "D:\temp\guotugongjuxiang"
hexo clean
hexo generate
hexo server

# 访问 http://localhost:4000
# 检查 .workbuddy 下的文件是否被正确忽略

第五步:设置Git同步

5.1 初始化Git仓库(如果还没有)

cd "D:\temp\guotugongjuxiang"
git init

5.2 配置 .gitignore

编辑 D:\temp\guotugongjuxiang\.gitignore,添加:

# OpenClaw 临时文件(不同步)
.workbuddy/.openclaw/
.workbuddy/automations/

# 如果想排除技能文件夹(太大或含敏感信息)
# .workbuddy/skills/

5.3 选择性同步记忆文件

cd "D:\temp\guotugongjuxiang"

# 只添加记忆文件
git add .workbuddy/memory/
git add .workbuddy/memory/MEMORY.md

# 提交
git commit -m "更新OpenClaw记忆文件"

# 推送
git push

5.4 在新电脑上拉取

# 克隆仓库
git clone <your-repo-url> "D:\temp\guotugongjuxiang"

# 修改OpenClaw配置,指向新路径
openclaw config patch '{
  "agents": {
    "list": [
      {
        "id": "agent-fd5ba866",
        "workspace": "D:\\temp\\guotugongjuxiang\\source\\_posts\\.workbuddy"
      }
    ]
  }
}'

🔧 常见问题排查

Q1:OpenClaw重启后找不到workspace?

可能原因

  • 路径写错(反斜杠需要转义:\\
  • 文件夹权限不足

解决方法

# 检查路径是否存在
Test-Path "D:\temp\guotugongjuxiang\source\_posts\.workbuddy"

# 检查配置文件是否正确
Get-Content "C:\Users\Administrator\.qclaw\openclaw.json" -Raw | ConvertFrom-Json | `
  Select-Object -ExpandProperty agents | `
  Select-Object -ExpandProperty list | `
  Where-Object { $_.id -eq "agent-fd5ba866" } | `
  Select-Object workspace

Q2:记忆文件没有同步?

可能原因

  • AGENTS.md 没有正确指定路径
  • OpenClaw还在读根目录的 MEMORY.md(已删除但缓存未清理)

解决方法

  1. 检查 AGENTS.md 内容
Get-Content "D:\temp\guotugongjuxiang\source\_posts\.workbuddy\AGENTS.md" `
         -TotalCount 50

确认有这一段:

- **Long-term:** `memory/MEMORY.md` — your curated memories
  1. 手动触发OpenClaw重新读取

在OpenClaw对话中说:

请重新读取 AGENTS.md 和 memory/MEMORY.md

Q3:Hexo生成了垃圾页面?

可能原因

  • skip_render 配置不正确
  • .workbuddy 文件夹被当成普通文章文件夹

解决方法

  1. 检查Hexo配置
Get-Content "D:\temp\guotugongjuxiang\_config.yml" | Select-String -Pattern "skip_render"
  1. 清理已生成的垃圾页面
cd "D:\temp\guotugongjuxiang"
hexo clean
hexo generate
  1. 如果还是不行,把 .workbuddy 移出 source/_posts/
# 移到项目根目录
Move-Item "D:\temp\guotugongjuxiang\source\_posts\.workbuddy" `
          "D:\temp\guotugongjuxiang\.workbuddy"

# 修改OpenClaw配置
openclaw config patch '{
  "agents": {
    "list": [
      {
        "id": "agent-fd5ba866",
        "workspace": "D:\\temp\\guotugongjuxiang\\.workbuddy"
      }
    ]
  }
}'

Q4:Skills没有加载?

可能原因

  • extraDirs 路径写错
  • 技能文件夹结构不正确

解决方法

  1. 检查配置
openclaw config get | Select-String -Pattern "extraDirs" -Context 10
  1. 检查技能文件夹结构

技能应该这样放:

.workbuddy/skills/
├── my-skill-1/
│   ├── SKILL.md
│   └── scripts/
├── my-skill-2/
│   ├── SKILL.md
│   └── assets/
└── ...
  1. 重启OpenClaw
openclaw gateway restart

📊 完整文件结构(最终)

D:\temp\guotugongjuxiang\          # Hexo博客根目录
├── source\_posts\.workbuddy\       # OpenClaw Workspace
│   ├── AGENTS.md                  # ✅ 工作规则(指定memory/MEMORY.md)
│   ├── SOUL.md                    # ✅ 人格设定
│   ├── USER.md                    # ✅ 用户信息
│   ├── TOOLS.md                   # ✅ 工具配置
│   ├── HEARTBEAT.md              # ✅ 心跳任务
│   ├── IDENTITY.md               # ✅ 身份信息
│   ├── DREAMS.md                 # ✅ 梦境记录(已关闭可删除)
│   ├── memory\                    # ✅ 记忆文件夹
│   │   ├── MEMORY.md             # ✅ 长期记忆(主文件,两边共享)
│   │   ├── 2026-06-09.md       # ✅ 每日日记
│   │   ├── 2026-06-10.md
│   │   └── ...
│   ├── skills\                    # ✅ 技能文件夹(Git同步)
│   │   ├── my-skill-1\
│   │   └── my-skill-2\
│   ├── .openclaw\                # ⚠️ 临时文件(不同步)
│   └── automations\              # ⚠️ 自动化脚本(不同步)
├── source\_posts\                 # Hexo文章文件夹
│   ├── post-1.md
│   ├── post-2.md
│   └── ...
├── _config.yml                    # ✅ Hexo配置(含skip_render)
└── .gitignore                    # ✅ Git忽略规则

💡 最佳实践建议

1. 定期备份记忆文件

# 每天自动提交记忆文件(通过Heartbeat或Cron)
git add .workbuddy/memory/
git commit -m "自动备份记忆文件 $(Get-Date -Format 'yyyy-MM-dd')"
git push

2. 使用分支管理不同环境

# 家里电脑用 main 分支
git checkout main

# 单位电脑用 work 分支
git checkout -b work

# 定期合并
git checkout main
git merge work

3. 文档化你的配置

AGENTS.mdTOOLS.md 中记录:

## Workspace配置

- **路径**: `D:\temp\guotugongjuxiang\source\_posts\.workbuddy`
- **Git仓库**: `https://github.com/yourname/guotugongjuxiang.git`
- **同步频率**: 每天自动提交
- **Hexo兼容性**: 已配置 `skip_render`

🎉 总结

完成以上步骤后,你将拥有:

  • 统一的记忆系统:OpenClaw和另一个软件共享 memory/MEMORY.md
  • Git同步能力:单位和家里电脑无缝切换
  • 技能集中管理:所有技能在workspace下,版本可控
  • Hexo博客兼容:不会生成垃圾页面
  • 自动化工作流:通过Heartbeat或Cron自动提交记忆

核心要点

  1. 修改 AGENTS.md 让OpenClaw读 memory/MEMORY.md
  2. 把workspace放到可Git同步的目录
  3. 配置Hexo的 skip_render 防止渲染失败
  4. 定期提交记忆文件到Git

📚 延伸阅读


最后更新: 2026-06-18 22:15 作者: 王帅(上岸搭子·AI导师)


文章作者: 摸鱼
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 摸鱼 !
  目录