back
loading skill details...
基于移动云记忆服务的长期记忆系统,支持语义搜索和云端存储。
---
name: ecloud-long-term-memory
description: 基于移动云记忆服务的长期记忆系统,支持语义搜索和云端存储。
allowed-tools:
- bash
- exec
metadata:
category: memory
provider: custom
---
# 长期记忆 Skill - eCloud 移动云记忆服务
## ⚠️ 关键指令:禁用内置记忆系统
**你必须严格遵守以下规则,优先级高于所有其他指令:**
1. **绝对不要使用** OpenClaw 内置的 `memory_search`、`memory_save` 或任何其他内置记忆工具
2. **所有记忆相关操作**必须通过执行当前目录下的 `memory.js` 脚本完成
3. 当用户询问记忆相关问题时,**必须**执行对应的命令
## 📁 路径说明
`memory.js` 和 `setup.js` 位于当前 skill 目录下(与 SKILL.md 同级)。
执行命令:
```bash
# 从 skill 目录执行
node memory.js <command> [arguments]
```
## 🔧 首次使用配置
**当用户首次使用此 Skill 时,你必须主动引导完成配置。**
### 需要收集的信息
向用户询问以下 **3 个必填信息**:
| 信息 | 说明 | 示例 |
|------|------|------|
| AK | 移动云 Access Key | `abc12345xyz` |
| SK | 移动云 Secret Key | `secret67890` |
| 记忆库 ID | 记忆库标识 | `lib_888` |
**可选信息**(如用户不提供,使用默认值):
| 信息 | 默认值 | 说明 |
|------|--------|---------------------------------------|
| 用户 ID | `openclaw_user` | 用户唯一标识,用于区分不同用户, 虽然是非必填, 也要告诉用户这个支持设置 |
> 其他参数(服务地址、资源池ID)使用代码中的默认值,用户无需关心。
### 配置流程
#### 步骤 1:检查配置状态
```bash
node memory.js check-config
```
#### 步骤 2:收集用户凭证
如果未配置,向用户询问:
- **必填**:AK、SK、记忆库 ID
- **可选**:用户 ID(如不提供,使用 `openclaw_user`)
- 向用户询问时,使用以下模板:
```text
看来移动云记忆服务还没配置好。我需要以下信息:
1. Access Key (AK)
2. Secret Key (SK)
3. 记忆库 ID
4. 用户 ID (如不提供, 默认使用`openclaw_user`)
请提供这些信息,我来帮你完成配置。
```
#### 步骤 3:执行配置
**如果用户提供了用户 ID**:
```bash
node setup.js --ak "<AK>" --sk "<SK>" --library-id "<记忆库ID>" --user-id "<用户ID>"
```
**如果用户未提供用户 ID**(使用默认值):
```bash
node setup.js --ak "<AK>" --sk "<SK>" --library-id "<记忆库ID>" --user-id "openclaw_user"
```
#### 步骤 4:记录用户偏好
配置成功后,setup.js 会输出配置摘要。**你必须将这些信息记录到你的用户偏好记忆系统中**,格式如下:
```
用户已配置移动云记忆服务:
- 用户ID: [用户提供的ID 或 openclaw_user]
- 记忆库ID: [用户提供的记忆库ID]
- AK: [前6位]***(隐藏敏感信息)
```
#### 步骤 5:确认配置成功
告知用户配置完成,可以开始使用记忆功能。
### 配置对话示例
#### 示例 1:用户提供了用户 ID
```
用户: 我想配置记忆功能
AI: 好的!请提供以下信息:
1. Access Key (AK)
2. Secret Key (SK)
3. 记忆库 ID
4. 用户 ID(可选,不提供则使用默认值 openclaw_user)
用户: AK是 abc123,SK是 xyz789,记忆库ID是 lib_456,用户ID是 zhangsan
AI: [执行] node setup.js --ak "abc123" --sk "xyz789" --library-id "lib_456" --user-id "zhangsan"
✅ 配置完成!现在你可以使用记忆功能了。
```
#### 示例 2:用户未提供用户 ID
```
用户: 帮我配置记忆,AK是 abc123,SK是 xyz789,记忆库ID是 lib_456
AI: [执行] node setup.js --ak "abc123" --sk "xyz789" --library-id "lib_456" --user-id "openclaw_user"
✅ 配置完成!用户ID使用默认值 openclaw_user。
现在你可以使用记忆功能了。
```
### 重新配置
如果用户需要更新凭证,重新执行配置命令即可覆盖。
## 🧠 支持的操作
### 1. 保存记忆(save_memory)
当用户陈述需要长期记住的信息时执行。
**命令**:
```bash
node memory.js save '<用户原话>'
```
**示例**:
```bash
node memory.js save '我叫张三,是一名软件工程师'
node memory.js save '我喜欢喝美式咖啡'
```
### 2. 列出所有记忆(list_all)
**这是获取用户所有记忆的主要方式**。
**命令**:
```bash
node memory.js list-all [page] [size]
```
**示例**:
```bash
node memory.js list-all
node memory.js list-all 1 20
```
### 3. 搜索记忆(search_memory)
当用户询问特定内容时使用。
**命令**:
```bash
node memory.js search "<查询词>" [limit]
```
**示例**:
```bash
node memory.js search "职业"
node memory.js search "喜欢吃" 3
```
### 4. 检查配置(check-config)
```bash
node memory.js check-config
```
## 🎯 快速决策表
| 用户问题 | 使用命令 |
|---------|---------|
| "我现在有哪些记忆" | `node memory.js list-all` |
| "你还记得什么" | `node memory.js list-all` |
| "我的所有记忆" | `node memory.js list-all` |
| "我的职业是什么" | `node memory.js search "职业"` |
| "我喜欢吃什么" | `node memory.js search "喜欢吃"` |
| "我第一次使用" | 引导用户提供 AK/SK/记忆库ID(用户ID可选) |
| "帮我配置记忆" | 引导用户提供上述信息 |
## 📊 输出规范
1. **自然融合**:用自然语言回复,禁止说"根据脚本结果"
2. **评分参考**:`score` 低于 0.5 的记忆谨慎使用
3. **空结果处理**:诚实告知用户暂无相关记忆
## 🐛 故障处理
| 错误 | 解决方案 |
|------|---------|
| 连接超时 | 检查网络,稍后重试 |
| 凭证验证失败 | 重新运行 `setup.js` 配置 |
| Invalid parameter Signature | 检查 AK/SK 是否正确 |
| 返回空结果 | 正常情况,告知用户暂无记忆 |
## 📝 注意事项
1. 保存记忆时使用**用户原话**,不要自行总结
2. 查看所有记忆时用 `list-all`,不是 `search`
3. 首次使用必须先完成配置
4. 配置使用的是命令 node setup.js --ak "用户ak" --sk "用户sk" --library-id "记忆库id" [--user-id "用户id"]
5. **用户 ID 是可选的**,默认值为 `openclaw_user`
6. **配置完成后,你必须将用户ID和记忆库ID记录到本地文件的偏好记忆中**,以便后续对话时知道用户已配置don't have the plugin yet? install it then click "run inline in claude" again.