AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
Provide persistent, retrievable long-term memory for AI agents using local SQLite and graph databases
翻译准备中
AI 摘要 · README
开发工具Python · TypeScriptGitHub @shaun17自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
安装型项目无需部署域名也可验证。个人仓库可通过 GitHub 登录验证,组织仓库可使用上方的仓库验证文件。
正在加载完整 README。 以下为已保存的摘录。
memoLite 是一个面向 AI Agent/LLM 应用的轻量级记忆基础设施。 它把常见的“多数据库重部署”记忆架构,收敛为本地优先的组合: • SQLite:事务数据(projects/sessions/episodes/semantic) • Kùzu:Episode/Derivative 图关系与回溯 • sqlite-vec 兼容层:向量检索(当前默认实现为 SQLite + Python fallback) 目标:让 Agent 具备可持久、可检索、可扩展的长期记忆能力,同时保持部署简单。 说明: • 仅安装 memolite:适合 hash embedder / 不启用本地 reranker 的场景 • 安装 memolite[embeddings]:同时覆盖 embedding 和 reranker 依赖 适用:普通用户、生产环境、快速上手。 • Python 3.12+ • 在仓库根目录执行 适用:二次开发、调试、修改源码。 • memolite(统一入口,推荐) •查看完整 README ↗
English version: README.en.md
memoLite 是一个面向 AI Agent/LLM 应用的轻量级记忆基础设施。
它把常见的“多数据库重部署”记忆架构,收敛为本地优先的组合:
目标:让 Agent 具备可持久、可检索、可扩展的长期记忆能力,同时保持部署简单。
set/category/tag/feature 结构化事实packages/ts-client)integrations/openclaw)memolite configure ...reconcile / repairbenchmark-searchload-testsrc/memolite/
app/ # 应用启动、资源注入、后台补偿
api/ # REST 路由与 schema
orchestrator/ # 统一编排层
episodic/ # 事件记忆写入/检索/删除
semantic/ # 语义记忆服务与 session manager
memory/ # short-term 与 memory-config
storage/ # SQLite/Kùzu/vector 存储实现
mcp/ # MCP server
client/ # Python SDK
tools/ # benchmark/loadtest/migration
pipx install memolite
# 或
pip install memolite
如果要启用本地语义 embedding + reranker(sentence-transformers / CrossEncoder):
pip install 'memolite[embeddings]'
# 或源码开发时
pip install -e '.[dev,embeddings]'
说明:
memolite:适合 hash embedder / 不启用本地 reranker 的场景memolite[embeddings]:同时覆盖 embedding 和 reranker 依赖适用:普通用户、生产环境、快速上手。
3.12+git clone https://github.com/shaun17/memoLite.git
cd memoLite
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
适用:二次开发、调试、修改源码。
安装后可用命令:
memolite(统一入口,推荐)memolite-mcp-stdiomemolite-mcp-httpmemolite configure ... 用于“服务外”的配置与数据管理,主要做三件事:
configure:生成 .env(写入服务运行所需配置)init:初始化本地数据目录与数据库结构(SQLite/Kùzu)detect-sqlite-vec:检测 sqlite-vec 扩展可用性(可选)memolite configure configure --output .env --data-dir ~/.memolite
memolite configure init --data-dir ~/.memolite
可选:检测 sqlite-vec 扩展
memolite configure detect-sqlite-vec --extension-path /path/to/sqlite-vec.dylib
# 前台模式(开发调试)
MEMOLITE_PORT=18731 memolite serve
默认地址:http://127.0.0.1:18731
说明:如果你使用
memolite openclaw setup,它会自动安装并启动后台服务,因此第 2、3 步可跳过。
语义约定:
memolite-server:前台运行,适合开发调试(可惰性 init)memolite service ...:后台托管命令(install/enable/disable/start/stop/restart/status/uninstall)- 开机自启只在
install --enable/enable中显式设置start/restart只影响运行态,不改变自启策略统一 CLI:
# 安装服务定义(不自动开机自启) memolite service install # 启用开机自启并立即启动 memolite service enable # 或一步完成 memolite service install --enable # 生命周期管理 memolite service start memolite service stop memolite service restart memolite service status # 关闭开机自启 / 卸载服务定义 memolite service disable memolite service uninstall平台说明:
- macOS: LaunchAgent (
~/Library/LaunchAgents/ai.memolite.server.plist)- Linux: systemd user service (
~/.config/systemd/user/ai.memolite.server.service)Linux 如需用户级服务在离线后继续运行,可按需启用 linger:
loginctl enable-linger "$USER"
memolite openclaw setup
该脚本会自动执行:
openclaw plugins install <plugin-path>~/.openclaw/openclaw.json 的 memolite 配置可覆盖参数(CLI):
memolite openclaw setup \
--base-url http://127.0.0.1:18731 \
--org-id openclaw \
--project-id openclaw \
--user-id openclaw \
--auto-capture true \
--auto-recall true \
--search-threshold 0.5 \
--top-k 5
参数说明:
--base-url:memolite 服务地址,默认 http://127.0.0.1:18731--org-id:组织标识,用于项目隔离(默认 openclaw)--project-id:项目标识,用于项目级隔离(默认 openclaw)--user-id:用户标识,用于用户级归属(默认 openclaw)--auto-capture:是否自动写入会话记忆(true/false)--auto-recall:是否自动召回相关记忆(true/false)--search-threshold:检索阈值(0~1,越高越严格)--top-k:每次检索返回的最大候选条数插件更新(推荐做法):
# 升级包(获取最新内置插件)
pipx upgrade memolite
# 重新安装插件并刷新 OpenClaw 配置
memolite openclaw setup
# 重启 gateway 使插件生效
openclaw gateway restart
# 验证插件名称/版本
openclaw plugins list | rg "openclaw-memolite|MemoLite"
如果发现版本仍未更新,可强制清理后重装:
memolite openclaw uninstall
rm -rf ~/.openclaw/extensions/openclaw-memolite
memolite openclaw setup
openclaw gateway restart
额外运维子命令:
# 状态与诊断
memolite openclaw status
memolite openclaw doctor
# 配置查看 / 更新 / 重置
memolite openclaw configure show
memolite openclaw configure set --base-url http://127.0.0.1:18731
memolite openclaw configure reset
# 卸载集成(仅移除 memolite 相关项)
memolite openclaw uninstall --dry-run
memolite openclaw uninstall
curl -X POST http://127.0.0.1:18731/projects \
-H 'content-type: application/json' \
-d '{
"org_id": "demo-org",
"project_id": "demo-project",
"description": "quickstart"
}'
curl -X POST http://127.0.0.1:18731/sessions \
-H 'content-type: application/json' \
-d '{
"session_key": "demo-session",
"org_id": "demo-org",
"project_id": "demo-project",
"session_id": "demo-session",
"user_id": "demo-user"
}'
curl -X POST http://127.0.0.1:18731/memories \
-H 'content-type: application/json' \
-d '{
"session_key": "demo-session",
"semantic_set_id": "demo-session",
"episodes": [
{
"uid": "ep-1",
"session_key": "demo-session",
"session_id": "demo-session",
"producer_id": "demo-user",
"producer_role": "user",
"sequence_num": 1,
"content": "Ramen is my favorite food."
}
]
}'
curl -X POST http://127.0.0.1:18731/memories/search \
-H 'content-type: application/json' \
-d '{
"query": "favorite food",
"session_key": "demo-session",
"session_id": "demo-session",
"semantic_set_id": "demo-session",
"mode": "mixed"
}'
返回重点字段:
episodic_matchessemantic_featurescombinedexpanded_contextshort_term_contextimport asyncio
from memolite.client import MemLiteClient
async def main() -> None:
async with MemLiteClient(base_url="http://127.0.0.1:18731") as client:
await client.projects.create(org_id="demo-org", project_id="demo-project")
await client.memory.add(
session_key="demo-session",
episodes=[
{
"uid": "ep-1",
"session_key": "demo-session",
"session_id": "demo-session",
"producer_id": "demo-user",
"producer_role": "user",
"sequence_num": 1,
"content": "Ramen is my favorite food.",
}
],
)
result = await client.memory.search(
query="favorite food",
session_key="demo-session",
session_id="demo-session",
)
print(result.combined)
asyncio.run(main())
完整示例:examples/python_sdk_quickstart.py
memolite-mcp-stdio
# 或
memolite-mcp-http
set_contextadd_memorysearch_memorydelete_memorylist_memoryget_memory详见:docs/mcp-guide.md
# 导出/导入
memolite configure export --output snapshot.json --data-dir ~/.memolite
memolite configure import --input snapshot.json --data-dir ~/.memolite
# 对账/修复
memolite configure reconcile --output reconcile.json --data-dir ~/.memolite
memolite configure repair --output repair.json --data-dir ~/.memolite
# 搜索基准/压测
memolite configure benchmark-search --output benchmark.json --data-dir ~/.memolite
memolite configure load-test --base-url http://127.0.0.1:18731 --total-requests 200 --concurrency 20
docs/quickstart.mddocs/architecture.mddocs/api-reference.mddocs/sdk-usage-guide.mddocs/mcp-guide.mddocs/config-reference.mddocs/deployment-guide.mddocs/troubleshooting.mddocs/faq.mdmemoLite 已具备可运行的端到端原型能力(写入、检索、删除、MCP、SDK、修复工具)。 在生产化前,建议结合你的业务继续增强: