记忆梦境引擎 · AI 的睡眠系统
mcpother official build verified dockerfile by the hub scanned零 LLM 事实提取 + 三维信号评分 + 艾宾浩斯衰减 + 五阶段梦境流水线与内容发芽检测,纯计算零依赖
run it
on your own machines, one way per deploy method# once, as root:
docker build -t mcp-local/memory-dream-engine:368bb4edc3498eff1ed6daae2628c7c5594cbd38 -f - 'https://github.com/savantcat/memory-dream-engine.git#368bb4edc3498eff1ed6daae2628c7c5594cbd38' <<'DOCKERFILE'
FROM python:3.12.8-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
RUN useradd --create-home app
USER app
EXPOSE 8000
CMD ["python", "server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"]
DOCKERFILE
#!/usr/bin/env bash
# memory-dream-engine (cn.savantcat/memory-dream-engine), recipe docker (worker, verified 2026-10-18 on v1.0.1, run r-20261018T113623Z-fac4152a0a21).
# Generated by Hub for toolset "my-agent"; started by mcp-my-agent-memory-dream-engine.service.
set -euo pipefail
export HOST=127.0.0.1 PORT=8101
exec docker run --rm --name mcp-my-agent-memory-dream-engine -p 127.0.0.1:${PORT}:8000 --env-file /etc/mcp/my-agent.env mcp-local/memory-dream-engine:368bb4edc3498eff1ed6daae2628c7c5594cbd38
[Unit]
Description=MCP server memory-dream-engine (toolset my-agent), generated by Hub
After=network-online.target docker.service
Wants=network-online.target
[Service]
Type=simple
User=mcp
Group=mcp
SupplementaryGroups=docker
EnvironmentFile=/etc/mcp/my-agent.env
Environment=HOME=/var/lib/mcp/memory-dream-engine
WorkingDirectory=/var/lib/mcp/memory-dream-engine
ExecStart=/opt/mcp/my-agent/bin/memory-dream-engine.sh
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/var/lib/mcp/memory-dream-engine
[Install]
WantedBy=multi-user.target
docker build -t memory-dream-engine -f - 'https://github.com/savantcat/memory-dream-engine.git#368bb4edc3498eff1ed6daae2628c7c5594cbd38' <<'DOCKERFILE' FROM python:3.12.8-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt RUN useradd --create-home app USER app EXPOSE 8000 CMD ["python", "server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"] DOCKERFILE docker run --rm -p 127.0.0.1:8101:8000 memory-dream-engine
# Generated by Hub for toolset "my-agent" (2026-10-18T16:14:56+00:00).
# Each package server runs behind a stdio->HTTP bridge and listens on localhost only.
# cp .env.example .env # fill the ${VAR}s
# docker compose up -d && bash smoke.sh
# Remote servers are not here: clients reach them directly (see clients/).
name: mcp-my-agent
services:
memory-dream-engine:
build:
context: https://github.com/savantcat/memory-dream-engine.git#368bb4edc3498eff1ed6daae2628c7c5594cbd38
dockerfile_inline: |
FROM python:3.12.8-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
RUN useradd --create-home app
USER app
EXPOSE 8000
CMD ["python", "server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"]
x-dockerfile: written by the hub (hub-llm:hub-coder@p6), checked by hub-llm:gpt-oss:120b@r2, not taken
from the repository
ports:
- 127.0.0.1:8101:8000
restart: unless-stopped
volumes:
npm-cache: {}
uv-cache: {}
# Generated by Hub for toolset "my-agent" (2026-10-18T16:14:56+00:00).
# kubectl create namespace mcp
# kubectl -n mcp create secret generic mcp-credentials --from-env-file=.env
# kubectl apply -f kubernetes.yaml
# Services are cluster-internal: <name>.mcp.svc.cluster.local:8000/mcp. Put an ingress
# with auth in front before exposing any of them.
apiVersion: v1
kind: Namespace
metadata:
name: mcp
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: memory-dream-engine
namespace: mcp
labels: &id001
app: memory-dream-engine
spec:
replicas: 1
selector:
matchLabels: *id001
template:
metadata:
labels: *id001
spec:
containers:
- name: memory-dream-engine
image: CHANGE_ME
ports:
- containerPort: 8000
name: http
env: []
---
apiVersion: v1
kind: Service
metadata:
name: memory-dream-engine
namespace: mcp
spec:
selector:
app: memory-dream-engine
ports:
- port: 8000
targetPort: http
name: http
dockerfile
FROM python:3.12.8-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt RUN useradd --create-home app USER app EXPOSE 8000 CMD ["python", "server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"]
# Generated by Hub for toolset "my-agent" (2026-10-18T16:14:56+00:00).
# Credentials come from the Secret 'mcp-credentials' (kubectl create secret generic ... --from-env-file=.env).
# Each server under `servers` is one Deployment + Service; the keys after it configure
# upstream charts a worker verified.
servers:
memory-dream-engine:
enabled: true
replicas: 1
port: 8000
path: /mcp
container:
name: memory-dream-engine
image: CHANGE_ME
ports:
- containerPort: 8000
name: http
env: []
# helm install my-agent helm/my-agent -n mcp
dockerfile
FROM python:3.12.8-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt RUN useradd --create-home app USER app EXPOSE 8000 CMD ["python", "server.py", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"]
Scanned github.com/savantcat/memory-dream-engine at 368bb4edc349 with [email protected][email protected] on 2026-10-18 before the build: 2 dependencies, 10 known vulnerabilities (4 high, 2 medium, 4 low), nothing in the code that looks malicious.
connect to it
copy what your client needs{
"mcpServers": {
"memory-dream-engine": {
"command": "CHANGE_ME",
"args": []
}
}
}
#!/usr/bin/env bash # Registers every server with Claude Code (run once; `claude mcp list` to check). set -euo pipefail set -a; [ -f .env ] && source .env; set +a claude mcp add memory-dream-engine -- CHANGE_ME
{
"mcpServers": {
"memory-dream-engine": {
"command": "CHANGE_ME",
"args": []
}
}
}
{
"servers": {
"memory-dream-engine": {
"type": "stdio",
"command": "CHANGE_ME",
"args": []
}
}
}
name: my-agent target: local servers: - hub: cn.savantcat/memory-dream-engine
- no recipe for target 'local': fill the files by hand
tools · 6
decay_reporttested艾宾浩斯衰减计算:当前记忆强度、访问一次能增强多少、该不该归档,以及完整衰减曲线。 半衰期 30 天;最低强度 0.05(不会彻底忘记);每次访问增强 ×1.3。 用它回答「这条记忆放了 N 天还剩多少」「什么时候该归档」「访问一次能不能救回来」。 Args: strength: 初始(或上次)记忆强度,0-1,默认 1.0。 days_since_access: 距上次访问的天数,默认 0。 threshold: 归档阈值,低于它建议归档,默认 0.15。艾宾浩斯衰减计算:当前记忆强度、访问一次能增强多少、该不该归档,以及完整衰减曲线。 半衰期 30 天;最低强度 0.05(不会彻底忘记);每次访问增强 ×1.3。 用它回答「这条记忆放了 N 天还剩多少」「什么时候该归档」「访问一次能不能救回来」。 Args: strength: 初始(或上次)记忆强度,0-1,默认 1.0。 days_since_access: 距上次访问的天数,默认 0。 threshold: 归档阈值,低于它建议归档,默认 0.15。
called 2026-10-18 · 3 ms · arguments from the schemapin 4942d5c9fe491be652cd6138933383d6c2342214187c139b5c2c9d14db619851engine_infotested引擎能力概览:四个「别人没有」的点、与同类方案的取舍对比、以及本服务的边界。引擎能力概览:四个「别人没有」的点、与同类方案的取舍对比、以及本服务的边界。
called 2026-10-18 · 3 ms · arguments from the schemapin 9e9de0d48f9528e6346d26598640d794964d349fc8d48c7948ac942be9d9c120extract_factstested零 LLM 事实提取:用纯正则从一段对话/笔记里抽出可长期记住的事实。 中英文通吃(这是与同类工具最大的差别——多数方案只支持英文正则)。 不调用任何模型,不花 token。抽取类型:偏好 preference / 纠偏 correction / 环境 env / 工具 tool / 决策 decision。 Args: text: 待提取的文本(对话记录、笔记、复盘都行)。上限返回 10 条。零 LLM 事实提取:用纯正则从一段对话/笔记里抽出可长期记住的事实。 中英文通吃(这是与同类工具最大的差别——多数方案只支持英文正则)。 不调用任何模型,不花 token。抽取类型:偏好 preference / 纠偏 correction / 环境 env / 工具 tool / 决策 decision。 Args: text: 待提取的文本(对话记录、笔记、复盘都行)。上限返回 10 条。
called 2026-10-18 · 10 ms · arguments from the schemapin a1f0440bb33d30200b00fc30e8ccd12d903049c965dfafc52554c224cf544e2blist_signal_typestested列出四维信号(决策 / 纠偏 / 工具 / 灵感)的定义、权重、检索词与三维评分权重。 打分前先看这里,能知道每种信号被侧重看哪个维度,避免拿一把尺子量到底。列出四维信号(决策 / 纠偏 / 工具 / 灵感)的定义、权重、检索词与三维评分权重。 打分前先看这里,能知道每种信号被侧重看哪个维度,避免拿一把尺子量到底。
called 2026-10-18 · 3 ms · arguments from the schemapin 2ad94955356dbf033f652c03ffcb67871f21596f52936da74e1ddb931e9dfb25score_signaltested三维动态评分:给一条信号打分,并给出该不该写进长期记忆的结论。 三个维度是 durability(持久度)/ correction(纠偏度)/ reusability(复用度), 权重按信号类型自适应——决策信号看持久度、纠偏信号看纠偏度、工具信号看复用度。 Args: text: 信号内容(一句话或一整段都行)。 signal_type: 信号类型,必须是 list_signal_types 里的名字之一: 决策信号 / 纠偏信号 / 工具信号 / 灵感信号三维动态评分:给一条信号打分,并给出该不该写进长期记忆的结论。 三个维度是 durability(持久度)/ correction(纠偏度)/ reusability(复用度), 权重按信号类型自适应——决策信号看持久度、纠偏信号看纠偏度、工具信号看复用度。 Args: text: 信号内容(一句话或一整段都行)。 signal_type: 信号类型,必须是 list_signal_types 里的名字之一: 决策信号 / 纠偏信号 / 工具信号 / 灵感信号
called 2026-10-18 · 3 ms · arguments from the schemapin 04c5a0656e97531037e87b28b71f7e28144ad3ded5905348c13f5912e6234a60simulate_dream用一段文本跑完整的五阶段梦境周期,返回逐步报告(含发芽检测与 token 节省)。 在**临时库**里执行,调用方不落任何持久数据。五阶段 = 浅睡采集 / 深睡评分 / 写入 / 优化 / REM 发芽。衰减与发芽检测每 3 轮才触发,所以默认跑 3 轮。 Args: text: 要摄入的文本(对话记录 / 笔记 / 复盘)。留空则只跑优化与发芽。 cycles: 跑几轮梦境周期,默认 3(至少 3 才能触发衰减与发芽)。用一段文本跑完整的五阶段梦境周期,返回逐步报告(含发芽检测与 token 节省)。 在**临时库**里执行,调用方不落任何持久数据。五阶段 = 浅睡采集 / 深睡评分 / 写入 / 优化 / REM 发芽。衰减与发芽检测每 3 轮才触发,所以默认跑 3 轮。 Args: text: 要摄入的文本(对话记录 / 笔记 / 复盘)。留空则只跑优化与发芽。 cycles: 跑几轮梦境周期,默认 3(至少 3 才能触发衰减与发芽)。
pin 1c42d03d0a464ae9b3fecb6aee223a00de6378c6fd8510ae82f7f49d4136e774
runs · 2
the latest tests of this entry by the hub and its workers, newest first| date | worker | method | status | sandbox | reason |
|---|---|---|---|---|---|
| 2026-10-18 11:36 | local-mac-vm | dockermcp 2026-07-28 | ok6 tools | gvisor | — |
| 2026-10-17 13:38 | local-mac-vm | docker | failed | gvisor | docker: sandbox: docker build: ERROR: failed to build: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory |