动作-状态时序记忆:记录类型化的状态与动作,做趋势、异常与因果关联分析。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Xplore-LAB/dsh-plugin-asmemory
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
给 agent 装上时间记忆:记录发生了什么、什么变了,做趋势、异常、因果分析——而不只是「说过什么」。
语言: English | 简体中文
⭐ 如果它对你有用,点个 star 是最好的感谢——让更多人看到它。
它做什么
asmemory 存两类 typed 事件,而非裸文本:
- 状态 State — 某实体某指标在某个时刻的值(
gpu.temperature = 78°C) - 动作 Action — 某时刻发生的某事(
agent 启动训练、操作工调了阀门)
在此之上提供四类分析:
| 分析 | 回答的问题 |
|---|---|
| 趋势 Trend | 这个指标在升还是降?(斜率 + 方向) |
| 异常 Anomaly | 哪些读数是离群点?(z-score) |
| 因果 Causal | 动作 X 是否推动了指标 Y?(前后差值) |
| 统计 Summary | 记忆库里有什么?(计数 + 实体) |
为什么是 asmemory
多数记忆插件存对话或文档,只能回答「你说过什么」。asmemory 存动作与状态,能回答「发生了什么、为什么」:
「训练启动后 GPU 温度升了吗?」→ 因果 「这周睡眠在下降吗?」→ 趋势 「哪些读数是离群点?」→ 异常
它是物理与运营世界的记忆层——agent 观测自己、工业过程、个人指标。
范例:agent 自我观测
记录 agent 自己的动作与资源状态,然后追问「GPU 为什么变热」:
from asmemory import StateEvent, ActionEvent, MemoryStore, analysis
store = MemoryStore("memory.db")
store.add_state(StateEvent("gpu", "temperature", 78.5, "celsius"))
store.add_action(ActionEvent("agent", "run_training", "qwen3.6", ts=1723500000))
# 训练真的让 GPU 变热了吗?
causal = analysis.causal_effect(store, "run_training", "gpu", "temperature")
print(causal["before_mean"], "->", causal["after_mean"], f"(Δ={causal['delta']})")
真实输出(24h 模拟 agent,72 条状态 + 20 条动作):
【因果】run_training → gpu.temperature: 45.3 → 78.7 (Δ=33.4, up) ← 显著
【因果对照】git_commit → gpu.temperature: 53.7 → 56.4 (Δ=2.7, up) ← 无效应
【异常】ram.usage: 1 个离群点 (z=-2.4)
引擎干净地分开真因果(训练)与巧合(git 提交)——不靠 LLM 猜,纯时序数学。
范例:工业监控 → DataLens
空分装置:氧纯度(监控指标)vs 导叶开度(控制动作)。asmemory 记因果,导出给 DataLens 找「过量控制」优化空间:
from asmemory.export import export_datalens
export_datalens(store, entity="oxygen", metric="purity",
action_verb="valve_adjust",
pollutant="氧纯度", regulator="导叶开度",
regulatory_limit=99.5)
# → data_datalens.csv + data_datalens.config.json
真实输出(240 分钟,240 条状态 + 240 条动作):
【因果】valve_adjust → oxygen.purity: Δ=0.0009 (up)
✅ CSV → data_datalens.csv (时间,指标值,控制量,整点标记)
✅ config → data_datalens.config.json (pollutant/regulator/limit)
把 data_datalens.csv 导入 DataLens,即可可视化「安全区还在过量控制」的节能空间。
工具
7 个 MCP 工具,对模型暴露为 mcp__asmemory__<tool>:
| 工具 | 作用 |
|---|---|
memory_store_state |
存状态事件(实体/指标/值/单位/标签) |
memory_store_action |
存动作事件(主体/动作/对象/控制量) |
memory_trend |
指标趋势方向 + 斜率 |
memory_anomaly |
z-score 离群点检测 |
memory_causal |
动作前后指标均值变化 |
memory_summary |
记忆库统计 |
memory_export_datalens |
导出 CSV + config 供 DataLens 可视化 |
安装
server 通过 asmemory-mcp 命令运行(也可用 ASMEMORY_MCP_PATH 指向脚本绝对路径)。先安装命令,再把 MCP 桥接注册到 DSH。
安装
asmemory-mcp命令:pip install .(或者跳过安装,直接设
ASMEMORY_MCP_PATH=/path/to/bin/asmemory-mcp。)带插件 patch 启动 DSH:
dsh web --patch "$PWD/cordis.yml"(包发布后,也可用
dsh plugin add dsh-plugin-asmemory安装。)完成。server 是单个 stdio 进程,只用 Python 3.10+ 标准库。
持久化默认 ~/.asmemory/memory.db(可用 ASMEMORY_DB_PATH 覆盖)。
已验证
全链路在真实 DSH 实例上端到端跑通(headless profile + 本地 Qwen3.6):agent 实际调用了 memory_store_state、memory_store_action、memory_summary,事件正确落入 SQLite——正是它被要求记录的数据。
快速上手
python3 examples/demo_agent_self_tracking.py # agent 自我观测 demo
python3 examples/demo_datalens_export.py # 工业 → DataLens 导出 demo
使用场景
- agent 自我观测 — 记录 agent 自身的动作与资源状态
- 工业监控 — 过程变量与操作工动作(空分、排放控制)
- 个人数据 — 睡眠、体重、花销、运动趋势
License
MIT — 随便用、随便改、随便发。如果它顺便帮你收获一颗 star 形状的回报,那就更好了。⭐
链接
同类插件
volcengine/OpenViking#examples/dsh-memory-plugin★ 38815
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
vectorize-io/hindsight#coding-agents★ 37670
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
agentscope-ai/ReMe#dsh★ 3526
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2670
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1074
读取本机上其他三十三个编程智能体已经写下的会话文件——Claude Code、Codex、Cursor、VS Code Copilot Chat、opencode、OpenClaw、Hermes、Kimi、Cline、Zed 等,包括安装之前的历史:提供 deja_recall、deja_session、deja_blame、deja_fix、deja_how、deja_remember 六个工具与 /deja 命令,并可选地把召回结果加入运行时上下文。本地 BM25 索引,不用大模型,不用向量嵌入,不联网(dsh plugin --profile web add dsh-deja)。
adoresever/graph-memory★ 630
DeepSeek Harness 的可追溯、可检索跨会话记忆:把对话知识沉淀为带类型的图节点(任务/技能/事件)与关系边。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。