精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
Action-State Memory Engine: typed time-series memory (states + actions) with trend/anomaly/causal analysis for DeepSeek Harness
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
Action-State Memory Engine: typed time-series memory (states + actions) with trend/anomaly/causal analysis for DeepSeek Harness
待人工精选——以下事实来自源码仓库。
Action-State Memory Engine: typed time-series memory (states + actions) with trend/anomaly/causal analysis for DeepSeek Harness
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:Xplore-LAB/dsh-plugin-asmemory 作者没有声明支持的平台。
gpu.temperature = 78°C) - Action — something that happened (agent ran training, operator adjusted a valve) On top of this memory it provides four analyses: | Analysis | Question it answers | |---|---| | Trend | Is my metric going up or down? (slope + direction) | | Anomaly | Which readings are outliers? (z-score) | | Causal | Did action X move metric Y? (before/after delta) | | Summary | What's in my memory? (counts + entities) | ## Why asmemory Most memory plugins store conversations or documents, so they answer "what did you say". asmemory stores actions and states, so it answers "what happened, and why": > "Did GPU temperature rise after training started?" → causal > "Is my sleep trending down this week?" → trend > "Which readings are outliers?" → anomaly It is the memory layer for the physical and operational world — agents observing themselves, industrial processes, and personal metrics. ## Example: agent self-tracking Record your agent's own actions and resource states, then ask why the GPU got hot: python 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)) # Did training actually heat the GPU? causal = analysis.causal_effect(store, "run_training", "gpu", "temperature") print(causal["before_mean"], "->", causal["after_mean"], f"(Δ={causal['delta']})") Real output (24h simulated agent, 72 states + 20 actions): 【因果】run_training → gpu.temperature: 45.3 → 78.7 (Δ=33.4, up) ← significant 【因果对照】git_commit → gpu.temperature: 53.7 → 56.4 (Δ=2.7, up) ← no effect 【异常】ram.usage: 1 outlier (z=-2.4) The engine cleanly separates real causality (training) from coincidence (git commits) — no LLM guessing involved, just time-series math. ## Example: industrial monitoring → DataLens Air-separation plant: oxygen purity (monitored metric) vs. valve opening (control action). asmemory remembers the causality, then exports to DataLens for over-control optimization: python 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 Real output (240 min, 240 states + 240 actions): 【因果】valve_adjust → oxygen.purity: Δ=0.0009 (up) ✅ CSV → data_datalens.csv (时间,指标值,控制量,整点标记) ✅ config → data_datalens.config.json (pollutant/regulator/limit) Open data_datalens.csv in DataLens to visualize the "still over-controlling in the safe zone" savings space. ## Tools Seven MCP tools, exposed to the model as mcp__asmemory__<tool>: | Tool | What it does | |---|---| | memory_store_state | Record a state event (entity / metric / value / unit / tags) | | memory_store_action | Record an action event (actor / verb / object / amount) | | memory_trend | Trend direction + slope of a metric | | memory_anomaly | z-score outlier detection | | memory_causal | Mean change of a metric before/after an action | | memory_summary | Library statistics | | memory_export_datalens | Export CSV + config for DataLens visualization | ## Installation The server runs from the asmemory-mcp command (or an absolute path via ASMEMORY_MCP_PATH). Install the command first, then register the MCP bridge with DSH. 1. Install the asmemory-mcp command: sh pip install . (Or skip the install and set ASMEMORY_MCP_PATH=/path/to/bin/asmemory-mcp instead.) 2. Launch DSH with the plugin patch: sh dsh web --patch "$PWD/cordis.yml" (Once published, you can also run dsh plugin add dsh-plugin-asmemory.) 3. Done. The server is a single stdio process using only the Python 3.10+ standard library. Persistence defaults to ~/.asmemory/memory.db (override with ASMEMORY_DB_PATH). ## Verified The full loop is tested end-to-end on a real DSH instance (headless profile + a local Qwen3.6 model): the agent called memory_store_state, memory_store_action, and memory_summary, and the events landed in SQLite — exactly the data it was asked to record. ## Quick start sh python3 examples/demo_agent_self_tracking.py # agent self-tracking demo python3 examples/demo_datalens_export.py # industrial → DataLens export demo ## Use cases - Agent self-tracking — record the agent's own actions and resource states - Industrial monitoring — process variables and operator actions (air separation, emission control) - Personal data — sleep, weight, spending, exercise trends ## License MIT — use it, fork it, ship it. And if it earns you a star-shaped reward in return, all the better. ⭐不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。