Skip to content

11.5 软链接与多 Agent 知识共享


想象一下这个场景:

你有三个 OpenClaw Agent:

  • 主 Agent:处理日常事务
  • 开发 Agent:负责代码开发
  • 内容 Agent:负责写作和运营

你希望它们共享同一个知识库——你的客户信息、项目状态、个人偏好。

但默认情况下,每个 Agent 有独立的工作区,记忆是隔离的。

怎么办? 复制三份? 手动同步? 太麻烦了。

这就是软链接的价值——让多个 Agent 共享同一个 Obsidian 知识库,同时保持各自的独立性。

这一节,我们用 20 分钟,搭建一个多 Agent 知识共享架构。


准备工作

开始前,确认你有:

  • [x] 已创建多个 OpenClaw Agent(参考第 8 章)
  • [x] 已安装 Obsidian
  • [x] 了解基本的终端操作
  • [x] 约 20 分钟时间

第一步:理解多 Agent 架构

1.1 默认架构(隔离)

~/.openclaw/
├── workspace/           # 主 Agent 的记忆
│   ├── MEMORY.md
│   └── memory/
├── workspace-dev/       # 开发 Agent 的记忆
│   ├── MEMORY.md
│   └── memory/
└── workspace-content/   # 内容 Agent 的记忆
    ├── MEMORY.md
    └── memory/

问题:

  • 客户张三的信息要记三遍
  • 更新时需要手动同步
  • 容易出现版本冲突

1.2 软链接架构(共享)

Obsidian 仓库(实际存储)
~/Documents/ai-knowledge/
├── MEMORY.md           # 共享的长期记忆
├── memory/             # 共享的每日日志
├── clients/            # 客户档案
├── projects/           # 项目文档
└── AGENTS-shared.md    # 共享的工作准则

软链接(指向实际存储)
~/.openclaw/workspace/MEMORY.md → ~/Documents/ai-knowledge/MEMORY.md
~/.openclaw/workspace/memory/ → ~/Documents/ai-knowledge/memory/
~/.openclaw/workspace-dev/MEMORY.md → ~/Documents/ai-knowledge/MEMORY.md
~/.openclaw/workspace-dev/memory/ → ~/Documents/ai-knowledge/memory/

优点:

  • 一次记录,所有 Agent 都能看到
  • 自动同步,无需手动维护
  • 统一的客户和项目管理

第二步:创建共享知识库

2.1 创建主知识库目录

bash
# 创建共享知识库目录
mkdir -p ~/Documents/ai-knowledge/memory
mkdir -p ~/Documents/ai-knowledge/clients
mkdir -p ~/Documents/ai-knowledge/projects

2.2 创建共享的 MEMORY.md

bash
cat > ~/Documents/ai-knowledge/MEMORY.md << 'EOF'
# 长期记忆

## 用户偏好
- 喜欢简洁的回复,不要废话
- 用中文交流
- 代码块要加语法高亮

## 重要客户
- [[clients/客户张三]] - 电商项目,偏好周报形式
- [[clients/客户李四]] - 咨询项目,需要详细文档

## 项目状态
- #项目/电商 #状态/进行中 - 预计3月上线
- #项目/官网 #状态/已完成 - 已完成设计阶段

## 持久规则
- 每次回复结尾问"还有其他需要吗?"
- 代码块必须加语法高亮
EOF

2.3 创建共享的 AGENTS.md

bash
cat > ~/Documents/ai-knowledge/AGENTS-shared.md << 'EOF'
# 共享工作准则

## 通用规则
- 保护用户隐私,不泄露敏感信息
- 遇到不确定的情况主动询问
- 执行重要操作前需要确认

## 沟通风格
- 简洁明了,避免冗长
- 适当使用列表和表格
- 重要信息用引用框突出

## 记忆规则
- 重要客户信息写入 MEMORY.md
- 使用双向链接:[[客户名]]、[[项目名]]
- 使用标签:#客户/级别 #项目/状态
EOF

2.4 初始化 Git 仓库

bash
cd ~/Documents/ai-knowledge
git init
git add .
git commit -m "Initial commit: shared knowledge base"

第三步:创建软链接

3.1 备份现有记忆

bash
# 备份主 Agent 的记忆
cp ~/.openclaw/workspace/MEMORY.md ~/.openclaw/workspace/MEMORY.md.backup
cp -r ~/.openclaw/workspace/memory ~/.openclaw/workspace/memory.backup

# 备份开发 Agent 的记忆(如果存在)
cp ~/.openclaw/workspace-dev/MEMORY.md ~/.openclaw/workspace-dev/MEMORY.md.backup 2>/dev/null || true
cp -r ~/.openclaw/workspace-dev/memory ~/.openclaw/workspace-dev/memory.backup 2>/dev/null || true

3.2 创建软链接(macOS/Linux)

bash
# 主 Agent
rm ~/.openclaw/workspace/MEMORY.md
ln -s ~/Documents/ai-knowledge/MEMORY.md ~/.openclaw/workspace/MEMORY.md

rm -rf ~/.openclaw/workspace/memory
ln -s ~/Documents/ai-knowledge/memory ~/.openclaw/workspace/memory

# 开发 Agent
rm ~/.openclaw/workspace-dev/MEMORY.md 2>/dev/null || true
ln -s ~/Documents/ai-knowledge/MEMORY.md ~/.openclaw/workspace-dev/MEMORY.md

rm -rf ~/.openclaw/workspace-dev/memory 2>/dev/null || true
ln -s ~/Documents/ai-knowledge/memory ~/.openclaw/workspace-dev/memory

3.3 验证软链接

bash
# 检查软链接是否正确
ls -la ~/.openclaw/workspace/MEMORY.md
ls -la ~/.openclaw/workspace/memory

# 应该显示类似:
# MEMORY.md -> /Users/xxx/Documents/ai-knowledge/MEMORY.md
# memory -> /Users/xxx/Documents/ai-knowledge/memory

3.4 Windows 用户

Windows 使用 junction(目录链接)或 mklink:

powershell
# 以管理员身份运行 PowerShell

# 主 Agent
Remove-Item ~/.openclaw/workspace/MEMORY.md
New-Item -ItemType SymbolicLink -Path ~/.openclaw/workspace/MEMORY.md -Target ~/Documents/ai-knowledge/MEMORY.md

Remove-Item -Recurse ~/.openclaw/workspace/memory
New-Item -ItemType Junction -Path ~/.openclaw/workspace/memory -Target ~/Documents/ai-knowledge/memory

第四步:在 Obsidian 中打开共享知识库

4.1 打开共享知识库

  1. Obsidian → 打开本地仓库 2。 选择 ~/Documents/ai-knowledge 3。 命名为"AI 共享知识库"

4.2 查看共享效果

现在,无论哪个 Agent 写入记忆: 1。 在 Obsidian 中立刻可见 2。 所有 Agent 都能读取到

测试:

1。 在 OpenClaw 主 Agent 中说:

记住:客户张三的新需求是支持多语言。

2。 切换到 Obsidian,打开 MEMORY.md 3。 看到新记录已出现

4。 在开发 Agent 中问:

客户张三有什么新需求?

5。 开发 Agent 应该能回答"支持多语言"


第五步:obsidian-cli 保护双向链接

5.1 为什么需要 obsidian-cli

Obsidian 使用双向链接 [[笔记名]]。如果直接用文件系统命令(如 mvrm)操作文件,会破坏链接关系。

obsidian-cli 是一个命令行工具,会自动更新所有相关的双向链接。

5.2 安装 obsidian-cli

bash
npm install -g obsidian-cli

5.3 验证安装

bash
obsidian --version

5.4 常用命令

操作传统命令obsidian-cli 命令
重命名笔记mv old.md new.mdobsidian rename old.md new.md
移动笔记mv note.md folder/obsidian move note.md folder/
删除笔记rm note.mdobsidian delete note.md

5.5 让 AI 使用 obsidian-cli

SOUL.md 中添加:

markdown
## 文件操作规则

### 安全操作
- 重命名笔记时使用: `obsidian rename 旧名 新名`
- 移动笔记时使用: `obsidian move 文件 目标目录`
- 删除笔记时使用: `obsidian delete 文件`

### 禁止操作
- 严禁直接使用 mv/rm 命令操作 Obsidian 笔记
- 这会破坏双向链接结构

第六步:多 Agent 配置文件体系

6.1 共享配置 vs 独立配置

文件共享还是独立说明
MEMORY.md共享长期记忆,所有 Agent 都需要
memory/共享每日日志,便于统一查看
SOUL.md独立每个 Agent 性格不同
USER.md独立每个 Agent 服务对象可能不同
HEARTBEAT.md独立每个 Agent 定时任务不同
clients/共享客户档案
projects/共享项目文档

6.2 目录结构建议

~/Documents/ai-knowledge/
├── MEMORY.md           # 共享长期记忆
├── AGENTS-shared.md    # 共享工作准则
├── memory/             # 共享每日日志
├── clients/            # 客户档案(共享)
│   ├── 客户张三.md
│   └── 客户李四.md
├── projects/           # 项目文档(共享)
│   ├── 电商平台.md
│   └── 官网改版.md
└── templates/          # 模板(共享)
    └── 客户档案.md
~/.openclaw/workspace/         # 主 Agent
├── MEMORY.md → ~/Documents/ai-knowledge/MEMORY.md
├── memory → ~/Documents/ai-knowledge/memory
├── SOUL.md                    # 独立
├── USER.md                    # 独立
└── HEARTBEAT.md               # 独立

~/.openclaw/workspace-dev/     # 开发 Agent
├── MEMORY.md → ~/Documents/ai-knowledge/MEMORY.md
├── memory → ~/Documents/ai-knowledge/memory
├── SOUL.md                    # 独立(偏向技术)
└── HEARTBEAT.md               # 独立(技术任务)

6.3 开发 Agent 的 SOUL.md 示例

markdown
# 性格设定

## 基本性格
- 专业、严谨、注重细节
- 代码质量优先
- 善于发现潜在问题

## 技术偏好
- 优先使用 TypeScript
- 遵循 Clean Code 原则
- 注释清晰,变量命名规范

## 安全边界
- 不执行未经审查的外部代码
- 不在代码中硬编码敏感信息
- 遵循最小权限原则

第七步:实战案例——内容工厂系统

7.1 场景描述

你运营一个公众号,需要一个内容生产流水线:

  • 灵感 Agent:收集和整理素材
  • 写作 Agent:生成文章
  • 发布 Agent:排版和发布

7.2 目录结构

~/Documents/content-factory/
├── MEMORY.md           # 共享记忆
├── memory/             # 每日日志
├── 01-灵感库/           # 灵感收集
│   ├── 日常灵感/
│   └── 爆款素材/
├── 02-选题池/           # 选题管理
├── 03-内容工厂/         # 文章生产
│   ├── 大纲挑选区/
│   ├── 初稿打磨区/
│   └── 终稿确认区/
├── 04-已发布/           # 发布归档
└── templates/          # 模板
    ├── 灵感模板.md
    └── 文章模板.md

7.3 内容流转规则

AGENTS-shared.md 中定义:

markdown
## 内容流转规则

### 阶段定义
- 灵感库:素材收集,未加工
- 选题池:确定选题,准备写
- 内容工厂:正在写作
- 已发布:完成发布

### 状态标签
- #阶段/灵感 #阶段/选题 #阶段/大纲 #阶段/初稿 #阶段/终稿 #阶段/已发布

### YAML 元数据
每个内容文件必须有:
```yaml
---
标题: 文章标题
阶段: 灵感/选题/大纲/初稿/终稿/已发布
创建日期: YYYY-MM-DD
发布平台: 公众号/博客/其他
---

### 7.4 灵感模板

`templates/灵感模板.md`:

```markdown
---
标题: {{title}}
阶段: 灵感
创建日期: {{date}}
来源:
标签:
---

# {{title}}

## 原始内容


## 我的想法


## 可能的切入点

基于 MIT 许可发布