SQL Memory Skill
Semantic memory layer for OpenClaw agents
Overview
Provides agent-friendly memory operations: remember, recall, search, forget, plus task queue management, knowledge indexing, activity logging, and hierarchical memory rollups. All operations go through the SQL Connector skill for reliable, parameterized SQL execution.
See scripts/sql_memory.py for full implementation.
Dependencies
- - sql-connector — provides the underlying database connection and query execution
Quick Start
CODEBLOCK0
Schema
All tables live in the memory schema (SQL Server database):
| Table | Purpose |
|---|
| INLINECODE2 | Long-term curated memories with importance scoring |
| INLINECODE3 |
Task queue for agent work items |
|
memory.ActivityLog | Event/activity logging for audit trail |
|
memory.KnowledgeIndex | Domain-specific knowledge store |
|
memory.Sessions | Session tracking for agents |
Memory Rollups
Hierarchical consolidation keeps memories fresh and relevant:
CODEBLOCK1
Each rollup:
- 1. Summarizes source entries
- Creates a consolidated entry with back-references
- Reduces importance of source entries
- Tags sources as INLINECODE7
Importance Scale
| Level | Meaning | Example |
|---|
| 1-2 | Ephemeral, archive | Old workspace file |
| 3-4 |
Context, nice-to-know | Debug notes |
| 5-6 | Standard operational | Task completion |
| 7-8 | Important milestone | Architecture decision |
| 9 | Critical | System design choice |
| 10 | Permanent | Core identity/values |
API Reference
Memory Operations
| Method | Description | Example |
|---|
| INLINECODE8 | Store a memory | INLINECODE9 |
| INLINECODE10 |
Retrieve a memory |
mem.recall('facts', 'name') |
|
search_memories(query, limit) | Semantic search |
mem.search_memories('timezone', limit=5) |
|
forget(cat, key) | Delete a memory |
mem.forget('facts', 'name') |
Task Queue
| Method | Description |
|---|
| INLINECODE16 | Add a task |
| INLINECODE17 |
Mark task as processing |
|
complete_task(id, result) | Mark task as completed |
|
fail_task(id, error, retries, max) | Fail with retry logic |
Activity Logging
| Method | Description |
|---|
| INLINECODE20 | Log an activity |
| INLINECODE21 |
Query recent events |
Configuration
Uses the same environment variables as sql-connector:
CODEBLOCK2
Architecture
CODEBLOCK3
License
MIT
技能名称: sql-memory
详细描述:
SQL 记忆技能
OpenClaw 代理的语义记忆层
概述
提供代理友好的记忆操作:记住、回忆、搜索、遗忘,以及任务队列管理、知识索引、活动日志记录和分层记忆汇总。所有操作均通过 SQL 连接器技能执行,实现可靠、参数化的 SQL 执行。
完整实现请参见 scripts/sql_memory.py。
依赖项
- - sql-connector — 提供底层数据库连接和查询执行
快速入门
python
from sqlmemory import SQLMemory, getmemory
mem = get_memory(cloud)
记住某件事
mem.remember(facts, vex_timezone, VeX 使用 EST/EDT 时区, importance=7)
回忆它
entry = mem.recall(facts, vex_timezone)
在所有记忆中搜索
results = mem.search_memories(timezone)
将任务加入队列
mem.queue
task(nlpagent, analyze_document, {doc: ...}, priority=3)
记录事件
mem.log
event(trainingcomplete, nlp_agent, 完成训练周期 42)
存储知识
mem.store
knowledge(stamps, invertedjenny, 罕见的 1918 年错版..., catalog)
模式
所有表都位于 memory 模式中(SQL Server 数据库):
| 表 | 用途 |
|---|
| memory.Memories | 带有重要性评分的长期精选记忆 |
| memory.TaskQueue |
代理工作项的任务队列 |
| memory.ActivityLog | 用于审计追踪的事件/活动日志 |
| memory.KnowledgeIndex | 特定领域的知识存储 |
| memory.Sessions | 代理的会话追踪 |
记忆汇总
分层整合保持记忆的新鲜度和相关性:
每日记忆 → 每周汇总(周日凌晨 3 点)
每周汇总 → 每月汇总(每月 1 日)
每月 → 每季度(1 月/4 月/7 月/10 月)
每季度 → 每年(1 月 1 日)
每次汇总:
- 1. 总结源条目
- 创建带有反向引用的整合条目
- 降低源条目的重要性
- 将源条目标记为 rolled_up
重要性等级
上下文,了解即可 | 调试笔记 |
| 5-6 | 标准操作 | 任务完成 |
| 7-8 | 重要里程碑 | 架构决策 |
| 9 | 关键 | 系统设计选择 |
| 10 | 永久 | 核心身份/价值观 |
API 参考
记忆操作
| 方法 | 描述 | 示例 |
|---|
| remember(cat, key, content, importance, tags) | 存储记忆 | mem.remember(facts, name, Oblio, 7) |
| recall(cat, key) |
检索记忆 | mem.recall(facts, name) |
| search
memories(query, limit) | 语义搜索 | mem.searchmemories(timezone, limit=5) |
| forget(cat, key) | 删除记忆 | mem.forget(facts, name) |
任务队列
| 方法 | 描述 |
|---|
| queuetask(agent, type, payload, priority) | 添加任务 |
| claimtask(id) |
将任务标记为处理中 |
| complete_task(id, result) | 将任务标记为已完成 |
| fail_task(id, error, retries, max) | 使用重试逻辑标记失败 |
活动日志
| 方法 | 描述 |
|---|
| logevent(type, agent, detail, extra) | 记录活动 |
| getrecent_activity(hours, agent) |
查询近期事件 |
配置
使用与 sql-connector 相同的环境变量:
SQLCLOUDSERVER=sql5112.site4now.net
SQLCLOUDDATABASE=db99ba1fmemory4oblio
SQLCLOUDUSER=...
SQLCLOUDPASSWORD=...
SQLLOCALSERVER=10.0.0.110
SQLLOCALDATABASE=Oblio_Memories
SQLLOCALUSER=sa
SQLLOCALPASSWORD=...
架构
┌──────────────────┐
│ 代理 │ ← OblioAgent 子类
├──────────────────┤
│ SQLMemory │ ← 语义操作(记住/回忆/队列/日志)
├──────────────────┤
│ SQLConnector │ ← 通用 SQL 执行(重试、参数化、日志记录)
├──────────────────┤
│ pymssql (TDS) │ ← 原生 SQL Server 驱动
└──────────────────┘
许可证
MIT