memory
工作区长期记忆的检索、读取与写入,持久化在 ./.first_paramecium 下。工具:memory_search、memory_get、memory_store、memory_recall、memory_forget、memory_sync。短期/多轮由 state.messages 提供;跨会话用 memory_store 或 write 写入后用 memory_search 回忆。
- License 许可
- MIT
- 最近更新
- 2026-03-10
- Stars
- ★ 5
- Forks
- 2
01 前言 Front Matter
- name
- memory
- description
- 工作区长期记忆的检索、读取与写入,持久化在 ./.first_paramecium 下。工具:memory_search、memory_get、memory_store、memory_recall、memory_forget、memory_sync。短期/多轮由 state.messages 提供;跨会话用 memory_store 或 write 写入后用 memory_search 回忆。
02 资源文件 156
- 参考文档agent-settings.md42.8 KB
- 参考文档AGENTS.md2.4 KB
- 其他agents/.gitattributes.fragment2.1 KB
- 参考文档agents/agent-project-settings.example.yml13.1 KB
- 参考文档agents/memory/domain-invariants.example.yml3.1 KB
- 参考文档agents/memory/historical-patterns.example.yml3.0 KB
- 参考文档agents/memory/incident-learnings.example.yml4.4 KB
- 参考文档agents/memory/ownership.example.yml2.5 KB
- 参考文档agents/memory/product-rules.example.yml3.3 KB
- 参考文档agents/proposal.example.md5.1 KB
- 参考文档command.md4.0 KB
- 参考文档contexts.md3.4 KB
- 参考文档contexts/agent-actions.yml1.7 KB
- 参考文档contexts/auth-model.md2.9 KB
- 参考文档contexts/data-sensitivity.md2.2 KB
- 参考文档contexts/deployment-order.md2.4 KB
- 参考文档contexts/knowledge-card.md4.0 KB
- 参考文档contexts/knowledge-pages.md5.3 KB
- 参考文档contexts/lesson-card.md3.2 KB
- 参考文档contexts/observability.md2.2 KB
- 参考文档contexts/tenant-boundaries.md2.2 KB
- 参考文档copilot-instructions.md6.9 KB
- 参考文档features.md3.9 KB
- 参考文档github-workflows/advisories-daily.yml3.7 KB
- 参考文档github-workflows/doc-impact.yml4.0 KB
- 参考文档github-workflows/memory-hygiene.yml4.6 KB
- 参考文档github-workflows/pr-risk-review.yml4.9 KB
- 参考文档github-workflows/proposal-drift.yml4.0 KB
- 参考文档github-workflows/roadmap-progress-check.yml2.1 KB
- 参考文档github-workflows/secret-scan.yml2.4 KB
- 其他hooks/pre-commit-frontmatter2.5 KB
- 其他hooks/pre-commit-roadmap-progress4.2 KB
- 参考文档MEMORY.md150 B
- 参考文档persona.md4.9 KB
- 参考文档playbook.md3.1 KB
- 参考文档references/layout.md1.5 KB
- 参考文档references/short-term-memory.md1.6 KB
- 参考文档roadmaps.md58.3 KB
- 参考文档rule.md5.8 KB
- 脚本scripts/check_memory_proposal.ts12.3 KB
- 脚本scripts/check_memory.ts36.1 KB
- 脚本scripts/check_playbook_invokes.ts9.0 KB
- 脚本scripts/historical-bug-patterns.example.yml3.3 KB
- 脚本scripts/implement_ticket/__main__.ts1.3 KB
- 脚本scripts/memory_hash.ts12.7 KB
- 脚本scripts/memory_lookup.ts41.7 KB
- 脚本scripts/memory_report.ts27.4 KB
- 脚本scripts/memory_signal.ts20.8 KB
- 脚本scripts/memory_status.ts6.7 KB
- 脚本scripts/ownership-map.example.yml2.2 KB
- 脚本scripts/pr_review_routing.ts18.1 KB
- 脚本scripts/pr_risk_review.ts13.2 KB
- 脚本scripts/pr-risk-config.example.yml2.1 KB
- 脚本scripts/README.md6.9 KB
- 脚本scripts/telemetry_record.ts10.6 KB
- 脚本scripts/telemetry_report.ts7.7 KB
- 脚本scripts/telemetry_status.ts10.5 KB
- 脚本scripts/telemetry/aggregator.ts8.5 KB
- 脚本scripts/telemetry/boundary.ts5.5 KB
- 脚本scripts/telemetry/engagement.ts21.0 KB
- 脚本scripts/telemetry/flush_sender.mjs5.4 KB
- 脚本scripts/telemetry/mcp_lite.ts7.8 KB
- 脚本scripts/telemetry/remote.ts29.1 KB
- 脚本scripts/telemetry/report_renderer.ts15.2 KB
- 脚本scripts/telemetry/settings.ts14.6 KB
- 脚本scripts/telemetry/transport.ts6.9 KB
- 脚本scripts/tier_usage_report.ts21.1 KB
- 脚本scripts/tools.ts23.8 KB
- 脚本scripts/work_engine/__main__.ts562 B
- 脚本scripts/work_engine/_lib/agent_settings.ts43.8 KB
- 脚本scripts/work_engine/_lib/control_roles.ts7.3 KB
- 脚本scripts/work_engine/_lib/user_global_paths.ts11.8 KB
- 脚本scripts/work_engine/cli_args.ts10.1 KB
- 脚本scripts/work_engine/cli.ts7.0 KB
- 脚本scripts/work_engine/delivery_state.ts8.6 KB
- 脚本scripts/work_engine/directives/backend/_self_fix.ts16.2 KB
- 脚本scripts/work_engine/directives/backend/analyze.ts4.4 KB
- 脚本scripts/work_engine/directives/backend/implement.ts10.9 KB
- 脚本scripts/work_engine/directives/backend/index.ts4.4 KB
- 脚本scripts/work_engine/directives/backend/memory.ts7.0 KB
- 脚本scripts/work_engine/directives/backend/plan.ts8.9 KB
- 脚本scripts/work_engine/directives/backend/refine.ts23.8 KB
- 脚本scripts/work_engine/directives/backend/report.ts14.2 KB
- 脚本scripts/work_engine/directives/backend/test.ts11.6 KB
- 脚本scripts/work_engine/directives/backend/verify.ts10.6 KB
- 脚本scripts/work_engine/directives/index.ts1.4 KB
- 脚本scripts/work_engine/directives/mixed/contract.ts9.2 KB
- 脚本scripts/work_engine/directives/mixed/index.ts3.9 KB
- 脚本scripts/work_engine/directives/mixed/stitch.ts9.6 KB
- 脚本scripts/work_engine/directives/mixed/ui.ts8.3 KB
- 脚本scripts/work_engine/directives/ui_trivial/_skipped.ts1.3 KB
- 脚本scripts/work_engine/directives/ui_trivial/apply.ts9.0 KB
- 脚本scripts/work_engine/directives/ui_trivial/index.ts4.0 KB
- 脚本scripts/work_engine/directives/ui_trivial/refine.ts4.1 KB
- 脚本scripts/work_engine/directives/ui_trivial/report.ts3.5 KB
- 脚本scripts/work_engine/directives/ui_trivial/test.ts5.7 KB
- 脚本scripts/work_engine/directives/ui/_fix_lane.ts2.2 KB
- 脚本scripts/work_engine/directives/ui/_passthrough.ts1.5 KB
- 脚本scripts/work_engine/directives/ui/app_spec.ts9.7 KB
- 脚本scripts/work_engine/directives/ui/apply.ts29.0 KB
- 脚本scripts/work_engine/directives/ui/audit.ts19.9 KB
- 脚本scripts/work_engine/directives/ui/design.ts19.4 KB
- 脚本scripts/work_engine/directives/ui/index.ts4.0 KB
- 脚本scripts/work_engine/directives/ui/polish.ts21.1 KB
- 脚本scripts/work_engine/directives/ui/review.ts31.4 KB
- 脚本scripts/work_engine/directives/ui/scaffold.ts21.3 KB
- 脚本scripts/work_engine/directives/ui/stack_bundles.ts16.3 KB
- 脚本scripts/work_engine/dispatcher.ts19.1 KB
- 脚本scripts/work_engine/emitters.ts4.0 KB
- 脚本scripts/work_engine/errors.ts984 B
- 脚本scripts/work_engine/hook_bootstrap.ts3.7 KB
- 脚本scripts/work_engine/hooks/builtin/_chat_history_base.ts6.8 KB
- 脚本scripts/work_engine/hooks/builtin/chat_history_append.ts1.7 KB
- 脚本scripts/work_engine/hooks/builtin/chat_history_halt_append.ts3.0 KB
- 脚本scripts/work_engine/hooks/builtin/decision_gate.ts8.3 KB
- 脚本scripts/work_engine/hooks/builtin/decision_trace.ts10.4 KB
- 脚本scripts/work_engine/hooks/builtin/directive_set_guard.ts3.8 KB
- 脚本scripts/work_engine/hooks/builtin/halt_surface_audit.ts4.1 KB
- 脚本scripts/work_engine/hooks/builtin/index.ts961 B
- 脚本scripts/work_engine/hooks/builtin/memory_visibility.ts5.9 KB
- 脚本scripts/work_engine/hooks/builtin/staged_confirmation_store.ts11.5 KB
- 脚本scripts/work_engine/hooks/builtin/staged_confirmation.ts10.3 KB
- 脚本scripts/work_engine/hooks/builtin/state_shape_validation.ts1.9 KB
- 脚本scripts/work_engine/hooks/builtin/trace.ts4.6 KB
- 脚本scripts/work_engine/hooks/context.ts3.1 KB
- 脚本scripts/work_engine/hooks/events.ts1.9 KB
- 脚本scripts/work_engine/hooks/exceptions.ts3.1 KB
- 脚本scripts/work_engine/hooks/index.ts991 B
- 脚本scripts/work_engine/hooks/registry.ts2.1 KB
- 脚本scripts/work_engine/hooks/runner.ts3.3 KB
- 脚本scripts/work_engine/hooks/settings.ts9.0 KB
- 脚本scripts/work_engine/input_builders.ts9.5 KB
- 脚本scripts/work_engine/intent/classify.ts27.6 KB
- 脚本scripts/work_engine/migration/v0_to_v1.ts17.8 KB
- 脚本scripts/work_engine/orchestration.ts12.3 KB
- 脚本scripts/work_engine/persona_policy.ts3.6 KB
- 脚本scripts/work_engine/procedure/checks.ts11.4 KB
- 脚本scripts/work_engine/procedure/run.ts19.7 KB
- 脚本scripts/work_engine/procedure/sidecar.ts7.6 KB
- 脚本scripts/work_engine/resolvers/diff.ts5.4 KB
- 脚本scripts/work_engine/resolvers/file.ts6.9 KB
- 脚本scripts/work_engine/resolvers/prompt.ts4.8 KB
- 脚本scripts/work_engine/scoring/confidence.ts17.0 KB
- 脚本scripts/work_engine/scoring/decision_engine.ts15.7 KB
- 脚本scripts/work_engine/scoring/decision_trace.ts9.8 KB
- 脚本scripts/work_engine/scoring/memory_visibility.ts14.7 KB
- 脚本scripts/work_engine/stack/detect.ts38.8 KB
- 脚本scripts/work_engine/stack/dotnet.ts8.1 KB
- 脚本scripts/work_engine/stack/engine.ts1.6 KB
- 脚本scripts/work_engine/stack/runner.ts52.8 KB
- 脚本scripts/work_engine/state_io.ts15.8 KB
- 脚本scripts/work_engine/state.ts51.5 KB
- 脚本scripts/work_engine/taxonomy/detect.ts19.0 KB
- 脚本scripts/work_engine/taxonomy/place.ts7.5 KB
- 参考文档skill-archive-note.md4.0 KB
- 参考文档tickets.md4.8 KB
03 SKILL.md 正文
Memory
在工作区 Markdown 记忆文件中检索、按片段读取,以及写入/遗忘标记。事实以文件为准;只有写入磁盘的内容可被 recall。
何时使用
- 用户询问“之前我们说过/决定过……”、“我的偏好……”、历史待办或日期/人物相关问题时,先调用 memory_search 或 memory_recall,再视情况 memory_get 拉取片段。
- 用户说“记住这个”或需要持久化一条信息时:用 memory_store 写入 MEMORY.md 或当日 memory/YYYY-MM-DD.md。
- 需要标记某条内容为“待遗忘”时:用 memory_forget 追加到 MEMORY.md 的 ## Forgotten,供人工审阅。
- 大量修改记忆文件后希望加速检索:调用 memory_sync 重建 FTS5 索引(需 Node 22+)。
工作区布局
记忆文件位于当前项目的 ./.first_paramecium 目录下(或环境变量 MEMORY_WORKSPACE 指定):
- .first_paramecium/MEMORY.md:长期记忆、决策与偏好;## Store 为 memory_store 追加区,## Forgotten 为 memory_forget 标记区。
- .first_paramecium/memory/YYYY-MM-DD.md:按日日志,仅追加。
可选 FTS5 索引:.first_paramecium/memory/index.sqlite(或 MEMORY_INDEX_PATH),由 memory_sync 创建/重建;Node 22+ 时 memory_search 会优先使用索引。可选向量混合检索(MEMORY_EMBEDDING_ENABLED=1 + EMBEDDING_API_KEY)与 会话转录索引(MEMORY_INDEX_SESSION=1)。
工具
memory_search
在 MEMORY.md、memory/*.md(及 MEMORY_EXTRA_PATHS)、可选 session/transcript.md(会话转录)中搜索。若有 FTS5 索引则全文检索;若启用 embedding 则与向量检索混合(FTS + 向量权重可配置),否则回退到文件关键词扫描。
- query(必填):搜索词或短语。
- maxResults(可选):最多返回条数,默认 10。
- 返回:
results[](path、startLine、endLine、snippet、score)、provider(hybrid / fts5 / vector / file-keyword)。
memory_get
按 path 与可选行范围读取片段。仅允许 MEMORY.md、memory.md、memory/.md、**session/.md**(转录,从索引读取)及 MEMORY_EXTRA_PATHS 内路径。
- path(必填):相对工作区的路径。
- from(可选):起始行号(1-based)。
- lines(可选):读取行数。
memory_store
将一条记忆追加到 MEMORY.md 的 ## Store 或当日 memory/YYYY-MM-DD.md。
- text(必填):要存储的内容。
- target(可选):
longterm(默认,写 MEMORY.md)或daily(写当日 memory/YYYY-MM-DD.md)。
memory_recall
与 memory_search 语义相同,用于“回忆”类查询。
memory_forget
将一条“待遗忘”标记追加到 MEMORY.md 的 ## Forgotten,不删除原文,仅供人工审阅或后续过滤。
- text(必填):要标记遗忘的内容简述。
memory_sync
重建 FTS5 索引(.first_paramecium/memory/index.sqlite)。需 Node 22+(node:sqlite);否则返回错误,memory_search 仍可用文件扫描回退。若 MEMORY_EMBEDDING_ENABLED=1 且配置了 EMBEDDING_API_KEY,会同时写入向量到索引以启用混合检索;若 MEMORY_INDEX_SESSION=1,会将 MEMORY_SESSION_PATH 指定的会话 JSON(如 Gateway 导出的 transcript 文件)纳入索引,路径为 session/transcript.md。
压缩前记忆刷新
在会话接近上下文压缩前,可运行一轮静默回合,提示模型把持久记忆写入磁盘。用法(在 run 或 Gateway 层):在即将压缩前调用 runMemoryFlushTurn(session, state, config, streamFn, { prompt?: string })(从 @monou/agent-from-dir 导出),用返回的 state 继续后续逻辑并再做压缩。默认 prompt 为:"Session nearing compaction. Write any lasting notes to MEMORY.md or memory/YYYY-MM-DD.md now. Reply with NO_REPLY if nothing to store."
短期记忆与多轮对话
- 同一会话内的多轮:由运行时的
state.messages自动保留,无需额外工具。 - 跨会话:用 memory_store 或 write 将要点写入 MEMORY.md / memory/YYYY-MM-DD.md,之后用 memory_search 回忆。
详见 references/short-term-memory.md。
流程建议
- 问题涉及“以前、上次、偏好、待办”等 → memory_search 或 memory_recall。
- 结果非空时按需 memory_get(path, from, lines)。
- 需持久化新信息 → memory_store(text, target) 或 write。
- 大量改过记忆文件且 Node 22+ → memory_sync 以启用/刷新 FTS5。
环境变量
| 变量 | 说明 |
|---|---|
MEMORY_WORKSPACE |
工作区根目录,默认 ./.first_paramecium |
MEMORY_INDEX_PATH |
FTS5 索引文件路径,默认 .first_paramecium/memory/index.sqlite |
MEMORY_EXTRA_PATHS |
逗号分隔的额外路径(相对工作区或绝对),纳入检索与 path 白名单 |
MEMORY_EMBEDDING_ENABLED |
1 或 true 时在 memory_sync 时写入向量并启用混合检索 |
EMBEDDING_API_KEY |
嵌入 API 密钥(OpenAI 兼容);未设时可用 OPENAI_API_KEY |
EMBEDDING_BASE_URL |
嵌入 API 根 URL,默认 https://api.openai.com/v1 |
EMBEDDING_MODEL |
嵌入模型名,默认 text-embedding-3-small |
MEMORY_VECTOR_WEIGHT |
混合检索时向量权重(0–1),默认 0.7 |
MEMORY_TEXT_WEIGHT |
混合检索时全文权重(0–1),默认 0.3 |
MEMORY_INDEX_SESSION |
1 或 true 时 memory_sync 将会话转录纳入索引(实验性) |
MEMORY_SESSION_PATH |
可选。会话 JSON 路径(需为 [{ role, content }] 数组),如 Gateway transcript 导出;会话由 Gateway 管理时可按需指向导出文件。 |
Resources
- references/layout.md — 工作区目录与文件约定。
- references/short-term-memory.md — 短期记忆与多轮对话说明。
04 同仓库更多 Skills
valid-skill
A valid skill for testing purposes.
different-name
Name does not match parent directory.
missing-description
暂无简介
disable-model-invocation
Skill with disable-model-invocation true.
web_skill
Fetch URL content or search the web. Use web_fetch for a known URL; use web_search when you need to find current information.
todo_skill
会话内待办列表。复杂任务先拆成 todowrite,执行中用 todoread 查看、用 todowrite 更新状态(in_progress/completed),与 OpenCode 任务管理一致。