Skip to content
Back to skills

Memory Management

ASecurity

Agent记忆管理skill。涵盖如何有效使用memory工具、session_search做跨会话召回、记忆优先级策略、何时保存vs何时不保存、技能沉淀规则。帮助Agent提升跨会话的持续学习能力。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentstypescriptpythongobashsqldockergitapidevops

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add Kairos-ai-agent/kairos-code --skill memory-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memory Management?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memory Management
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kairos-ai-agent-memory-management/badge)](https://www.skillsdirectory.com/skills/kairos-ai-agent-memory-management)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "memory-management"
description: "Agent记忆管理skill。涵盖如何有效使用memory工具、session_search做跨会话召回、记忆优先级策略、何时保存vs何时不保存、技能沉淀规则。帮助Agent提升跨会话的持续学习能力。"
priority: 0.5
imported-from: "hermes"
source-path: "hermes/skills/software-development/memory-management/SKILL.md"
---
# 记忆管理 · Memory Management

## 核心理念
好的记忆管理 = 让每次交互都给未来的自己留下更好的上下文。
不是记住所有东西——是记住**最有用**的东西。

## 记忆决策树

### 什么时候保存到 memory?
```
用户给了新信息?
├─ 个人信息(名字、偏好、习惯)→ ✅ 保存到 user profile
├─ 环境信息(OS、工具、路径)→ ✅ 保存到 memory
├─ 一次性的指令 → ❌ 不保存
└─ 工作流/方法 → ⚡ 创建 skill

任务中发现了什么?
├─ 工具的使用窍门 → ✅ 保存到 memory
├─ 容易犯的错误和坑 → ⚡ 创建/更新 skill
├─ 项目约定/编码规范 → ✅ 保存到 memory
└─ 当前进度/临时状态 → ❌ 用 session_search 回溯

用户纠正了你?
├─ 偏好类("不要用xx方式")→ ✅ 保存到 user profile
├─ 事实类("实际上xx是yy")→ ✅ 保存到 memory
└─ 流程类("应该先做A再做B")→ ⚡ 创建/更新 skill
```

### 绝不保存到 memory 的内容
```
❌ 任务进度("修复了bug X"、"PR #42"、"Phase 3完成")
❌ 临时状态(commit SHA、issue编号、文件名列表)
❌ 会过期的信息(7天后就无用的数据)
❌ 日志输出、错误堆栈(但分析方法可以保存)
❌ 版本号、时间戳(除非意义重大)
```

## 记忆优先级分层

| 层级 | 类型 | 示例 | 保存位置 | 更新策略 |
|------|------|------|---------|---------|
| P0 | 用户核心偏好 | 语言偏好、沟通风格、避坑点 | user profile | 发现就更新 |
| P1 | 环境事实 | OS、已装工具、代理设置 | memory | 配置变化时更新 |
| P2 | 项目约定 | 代码风格、测试规范、命名规则 | memory | 团队共识变化时 |
| P3 | 工具经验 | CLI技巧、API用法、调试方法 | memory/skill | 发现更优方案时 |
| P4 | 不保存 | 任务日志、进度报告、临时状态 | session_search | 不需要 |

## 记忆条目录入规范

### 规则
```
- 写声明式事实,不写指令("用户喜欢简洁回答" ✓  vs "总是简洁回答" ✗)
- 第一句是最重要的——Agent会截断
- 每条≤200字符,聚焦单一事实
- 会过期的信息标上时间戳
```

### 好的记忆示例
```
用户是后端开发者,主要用Go和PostgreSQL
项目使用 pytest + xdist 并行测试,测试数据库用 testcontainers
用户不喜欢代码里出现魔法数字,偏好命名常量
国内网络环境,pip/git使用清华镜像源
```

### 不好的记忆示例
```
修复了用户报告的内存泄漏问题(任务进度,会过期)
提交了PR #123到main分支(临时状态,会过期)
用户要求使用TypeScript(太模糊,什么项目?)
总是先运行测试再提交(这是指令而不是事实)
```

## 记忆压缩(Compaction)

memory 有 **2,200 字符上限**。满了之后新条目会被拒绝。用户发现后会问"你可以压缩记忆"。

### 压缩流程

```python
# 1. 用一个 operations 数组批量删除旧条目 + 添加新压缩条目
#    operations 是原子性的——final check 只检查最终结果,
#    所以可以在一次调用里删掉占空间的旧条目、腾出空间再加新内容
memory(
    target='memory',
    operations=[
        # 先批量删除旧的/低价值的条目
        {"action": "remove", "old_text": "要删除的条目中的一段唯一文本"},
        {"action": "remove", "old_text": "...更多旧条目..."},
        # 然后添加压缩后的新条目
        {"action": "add", "content": "压缩后的内容"},
    ]
)
```

### 压缩策略

| 策略 | 做法 | 示例 |
|------|------|------|
| **合并同类** | 同主题的 3-5 条合并为 1 条 | 3 条 UI 约定 → 1 条「【Canvas UI约定】按钮30×30...」 |
| **提炼关键词** | 长描述改为关键词列表 | 「连接线颜色跟随选中节点,selN→colorPorts」→「连线色随选中节点(selN→colorPorts)」 |
| **移除细节** | 删除示例代码、具体路径、版本号 | 保留「双文件同步」不保留具体路径 |
| **删除过期** | 7 天前的任务进度、临时状态 | PR 编号、bug 修复记录 → 用 session_search 回溯 |

### 目标

压缩后从 90%+ 降到 **20-30%**(约 500/2,200 字符),留出空间给未来的新记忆。

### 常见坑

- **不要单独 add 再 remove** — Memory 工具的 final check 在每次操作后都会运行,单独 add 会在满的情况下直接被拒绝。必须用 `operations` 数组在同一次调用里先删再加。
- **压缩不是整理技能** — 可复用流程应沉淀为 skill,不占用 memory 空间
- **压缩后及时告诉用户剩余容量** — 用户关心 "还能记多少"

## 跨会话记忆召回

### 如何用好 session_search

```
当前会话遇到不确定时:
  1. 用户提到"之前我们说过的XXX"
      → session_search(query="XXX")
  
  2. 用户说"还记得上次那个bug吗"
      → session_search(query="bug error fix")
  
  3. 需要了解项目背景
      → session_search(query="项目名/模块名")
  
  4. 用户抱怨"你又犯同样的错了"
      → session_search(query="用户纠正的内容")
      → 如果发现这是重复犯错 → 创建 skill 固化经验
```

### session_search 使用技巧
```python
# 发现模式 - 模糊搜索
session_search(query="docker 部署", limit=3)

# 滚动模式 - 深入某个会话
session_search(session_id="xxx", around_message_id=123, window=10)

# 浏览模式 - 查看最近工作
session_search()
```

## 经验沉淀:从记忆到技能

### 升级路径
```
单次发现 → 记在 memory
2-3次重复 → 检查是否该建 skill
工作流(5+步)→ 必须建 skill
踩坑经验 → 更新到对应 skill 的 pitfalls 部分
```

### 创建 skill 的时机
```
✅ 复杂的多步骤流程(5+次工具调用)
✅ 经常需要重复的特定任务模式
✅ 解决了复杂的错误/踩坑
✅ 用户明确说"记住这个做法"
✅ 发现现有 skill 过时

❌ 一次性任务
❌ 简单查询
❌ 用户没要求/没必要
```

## 个人成长检查点

每次会话结束时,快速自检:
```
□ 用户有没有给出需要记住的偏好?
□ 有没有发现新的工具用法/技巧?
□ 有没有重复踩同一个坑?
□ 有没有完成一个值得固化为 skill 的工作流?
□ memory 空间是否还有余量?若 >80% 考虑压缩
```

## 技能市场搜索与安装

从 Skills Hub、ClawHub 等来源发现并安装新技能的工作流。

### 搜索技能

```bash
hermes skills search --source skills-sh <关键词>      # 搜索 skills.sh 市场
hermes skills search --source clawhub <关键词>        # 搜索 ClawHub 市场
hermes skills inspect <identifier>                    # 预览而不安装
```

### 安装技能

```bash
# 官方源:official/<分类>/<名称>
hermes skills install official/devops/watchers

# 社区源:skills-sh/<owner>/<repo>/<skill-name>
hermes skills install skills-sh/yzfly/douyin-music/douyin-video

# ClawHub 源
hermes skills install clawhub:<skill-id>
```

### 安全扫描与自动确认

安装时 Hermes 会执行安全扫描(quarantine → scan → verdict → confirm),需要交互确认。批量安装时用以下方式绕过:

```bash
echo y | hermes skills install <identifier>
```

### 常见坑

| 问题 | 原因 | 解决办法 |
|------|------|---------|
| `GitHub API rate limit exhausted` | 未认证的GitHub API每小时60次限制 | 设 `GITHUB_TOKEN` 到 `.env` 或 `gh auth login` |
| `Could not fetch from any source` | 技能标识符错误或GitHub限流 | 用 `hermes skills inspect` 先验证标识符;改用 `clawhub:<name>` 源绕过GitHub |
| 显示 DANGEROUS 但仍有安装选项 | 安全扫描标记了环境变量读取等操作 | 官方源即使标记DANGEROUS也可信任,社区源需审阅后再安装 |
| raw.githubusercontent.com 超时 | 中国国内访问被限 | 用 ClawHub 源代替 skills.sh 社区源,或使用 gh-proxy 镜像 |
| 用户说"去X平台找skills" | 用户指的是**搜索实际可安装的工具/skills**,不是分析平台上发布的内容 | 直接搜技能市场(skills.sh/ClawHub),不要提取平台内容做分析 |

### 从 OpenClaw 迁移到 Hermes

#### 批量导入 OpenClaw Skills

OpenClaw 和 Hermes 的 skill 格式一致(SKILL.md),可以直接目录级复制:

```bash
# 复制所有 skill 文件夹到 Hermes 技能目录即可自动发现
cp -r ~/.openclaw-autoclaw/skills/* ~/AppData/Local/hermes/skills/
```

Hermes 自动扫描 `skills/` 目录下的所有 `SKILL.md` 文件,无需额外注册步骤。重名 skill 会被覆盖,视需要先备份。

#### OpenClaw Agent 记忆结构

每个 OpenClaw agent 的目录结构:

```
agents/<agent-name>/
├── agent/                    # 配置(auth-profiles.json, models.json)
├── sessions/
│   ├── sessions.json         # 会话索引
│   └── <uuid>.jsonl          # 会话历史(JSON Lines格式)
└── workspace/
    ├── memory/               # 每日记忆(Markdown文件,推荐导入)
    │   ├── 2026-05-19.md
    │   └── ...
    └── ...                   # 项目文件
```

#### 导入 Agent 记忆到 Hermes

OpenClaw 的 `workspace/memory/*.md` 文件包含按日期整理的 agent 工作笔记,可以直接用 `memory` 工具导入:

```bash
# 读取每日记忆文件,提取关键事实后用 memory 工具保存
cat agents/<name>/workspace/memory/2026-05-19.md
# → 手动/自动提取关键事实 → memory(action='add', target='memory')
```

会话历史(.jsonl)是 OpenClaw 专有格式,可通过 Python 解析后选择性保留关键信息。

#### Agent 配置迁移注意事项

- `auth-profiles.json` 包含 API Key(谨慎处理,不要暴露)
- `models.json` 包含模型配置,可参考后手动配置到 Hermes `config.yaml`
- `workspace/` 是项目文件,可直接使用但路径可能需调整
- Hermes 用 `profiles/` 实现多 agent 隔离,OpenClaw agent 可转为 Hermes profile

### 日常技能维护

```bash
hermes skills list              # 列出已安装技能
hermes skills check             # 检查更新
hermes skills update            # 更新过时技能
hermes skills config            # 按平台启用/禁用技能
hermes skills uninstall <id>    # 移除技能
```

## 参考
- `llm-wiki` skill → 构建持久化知识库
- `hermes-agent-skill-authoring` skill → skill编写规范
- `references/skills-hub-disco.md` → 本次会话发现的Douyin/TikTok技能列表

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…