ReMe/docs/zh/reme_scene.md
jinliyl ab66f2bb56
docs: refresh ReMe guides, diagrams, and Studio documentation (#447)
* docs: update ReMe documentation URL

* docs: localize ReMe Studio social image

* docs(AGENTS): update agent guidelines and repository documentation structure

- Clarify coding agent guidance for keeping changes small and consistent
- Revise project principle descriptions for clarity and modern terminology
- Expand repository map with detailed component and folder explanations
- Add configuration and CLI usage instructions, including syntax and merging rules
- Elaborate on component, step registration, and application lifecycle processes
- Define jobs, steps, and state handling conventions for stateless design
- Specify workspace and file safety policies, including path restrictions and locking
- Update validation commands and testing environment recommendations
- Clarify coding and test conventions, including style and dependency policies
- Distinguish documentation boundaries and update website content contribution notes
- Reinforce change guardrails to avoid breaking backward compatibility and data loss
- Improve svg diagram formatting and textual details in auto dream and proactive flow image

* style(docs): fix font-family syntax in SVG style definitions

- Correct quotation marks around font-family names in memory-as-file.svg
- Standardize font-family formatting by removing unnecessary quotes in reme-blog-architecture.svg
- Ensure consistent CSS style formatting within SVG files for better rendering fidelity

* docs: add ReMe blog to news

* style(docs): inline svg styles and improve text formatting

- Convert multiline SVG style tags into single-line for compactness in multiple figures
- Remove redundant line breaks in subtitle text elements for consistency
- Shorten descriptive texts in SVG figures for clarity and conciseness
- Adjust font sizes and text for better readability in SVG elements
- Correct whitespace issues in Chinese markdown document for improved formatting
- Remove unused style blocks from framework structure SVG for cleaner code
2026-08-12 10:59:03 +08:00

12 KiB
Raw Blame History

ReMe 应用场景

本文描述 ReMe 在真实 Agent 工作流里的使用方式。目录、Job 名称和能力边界按 reme/ 最新代码整理。

ReMe 的共同模式是:

对话 / 外部材料
      |
      +--> auto_memory / auto_resource
      |        写入 daily/
      |
      +--> auto_dream
      |        从 daily/ 提炼 digest/{personal,procedure,wiki}/
      |        同时写 daily/<date>/interests.yaml
      |
      +--> search / node_search / read / traverse / proactive
               供 Agent 检索、联想、读取兴趣主题

场景一:金融分析师的产业链知识库

主角:王分析师,新能源行业研究员。每天处理研报、产业新闻、公司调研和盘后口述。

痛点:信息散在文本研报、网页摘录、群消息、调研纪要和对话里。几天后再问“上次宁德调研里提到的钴价影响”,很难把原始事件、公司、材料路线和上游矿企串起来。

Day 1盘后对话和研报进入 Daily

王分析师把 3 篇研报同步到 resource/2026-05-18/,又和 Agent 口述:

今天嘉能可发了三季报,钴产量同比下滑 18%。
刚果(金)矿权政策变化,对洛阳钼业 KFM 矿的影响要重点跟。
下游三元正极厂商继续转向高镍低钴方案。

ReMe 产生两类浅加工文件:

resource/
└── 2026-05-18/
    ├── glencore-q3.md
    ├── cobalt-policy.md
    └── cathode-trend.md

session/
└── dialog/
    └── 2026-05-18-close.jsonl

daily/
├── 2026-05-18.md
└── 2026-05-18/
    ├── cobalt-supply-risk.md
    ├── glencore-output-update.md
    ├── drc-cobalt-policy.md
    ├── high-nickel-cathode-trend.md
    └── interests.yaml          # auto_dream 后生成

对应链路:

  • auto_memory 保存对话来源消息到 session/dialog/<session_id>.jsonl,再让 Agent 把重要事实写入按主题命名的 daily/<date>/<generated_name>.md;卡片 frontmatter 保留 session_idsource_conversation 用于稳定定位和追溯。
  • resource_watch_loop 监听 resource/ 文本文件变化,并触发 auto_resource_step 写带 source_resource 的 daily note文件名由 Agent 根据内容建议,再由系统清洗并处理冲突,不保证与资源同名。
  • Auto Memory、Auto Resource 和 Auto Dream 都会在写入后刷新 daily/<date>.md 当天索引页。

Day 1 晚上Auto Dream 进入 Digest

运行:

reme auto_dream date=2026-05-18

auto_dream 是四步管线:

dream_extract_step
  默认扫描 2026-05-17 至 2026-05-18 的 daily 窗口
  从 changed 文件输出最多 5 个 units 和 topics

dream_integrate_step
  每个 unit 用 node_search 召回已有 digest 节点
  决定 CREATE / CORROBORATE / REFINE / CORRECT

dream_topics_step
  写 daily/2026-05-18/interests.yaml

dream_finish_step
  checkpoint 成功处理的 daily 输入

本场景中的产物:

digest/
└── wiki/
    ├── 嘉能可.md
    ├── 钴.md
    └── 三元正极.md

示例 digest/wiki/钴.md

---
name: 钴
description: 锂电正极材料关键原料,主产区集中于刚果(金)
---

# 钴

用于 [[digest/wiki/三元正极.md]];主要生产商包括 [[digest/wiki/嘉能可.md]]。

## 供给端
嘉能可三季度钴产量同比下滑 18%,需要继续跟踪供给收缩对价格的影响。

## 政策风险
刚果(金)矿权政策变化可能影响 KFM 矿运营,需联动跟踪洛阳钼业。

## Sources

产量下滑与政策风险的证据记录在 [[daily/2026-05-18/cobalt-supply-risk.md]] 中。

注意wikilink 是字面路径语义,推荐写完整 workspace-relative 路径和 .md 扩展名。ReMe 不会自动把 [[钴]] 解析成某个文件。

Day 2调研信息补充已有节点

王分析师参加宁德时代调研:

宁德今年全面切换 9 系高镍三元,钴用量还会继续降。
产能利用率 85%,比上季度高 5 个点。

auto_memory 写入:

daily/2026-05-19/ningde-research.md

auto_dream date=2026-05-19 时:

  • dream_extract_step 提取“宁德高镍三元切换”“宁德产能利用率”。
  • dream_integrate_stepnode_searchdigest/ 内召回 digest/wiki/三元正极.mddigest/wiki/钴.md
  • Agent 对 三元正极.mdREFINE,把宁德 9 系切换作为案例写入。
  • Agent CREATE 或更新 digest/wiki/宁德时代.md

此时图谱逐步长成:

digest/wiki/
├── 嘉能可.md
├── 钴.md
├── 三元正极.md        # REFINE: 高镍低钴趋势 + 宁德案例
└── 宁德时代.md        # CREATE: 产能利用率 + 9 系切换

Day 5用户检索“锂电上下游”

王分析师问:

帮我分析一下锂电相关上下游。

Agent 调用:

reme search query="锂电 上下游 三元 正极 钴 宁德" limit=5

search 返回 chunk 正文、行号、分数,以及命中文件的 outlinks/inlinks 目录。默认配置下结果来自 BM25 + 图展开。

检索结果形态:

========== digest/wiki/钴.md:8-20 [score=0.0148 keyword=3.7112] ==========
# 钴
## 供给端
嘉能可三季度钴产量同比下滑 18%...

  outlinks:
    -> digest/wiki/三元正极.md name="三元正极"
    -> digest/wiki/嘉能可.md name="嘉能可"
  inlinks:
    <- digest/wiki/三元正极.md name="三元正极"

========== digest/wiki/三元正极.md:5-18 [score=0.0139 keyword=3.2017] ==========
...

Agent 可以只看邻居目录就拼出产业链骨架;需要细节时,再调用:

reme read path=digest/wiki/宁德时代.md
reme traverse path=digest/wiki/钴.md depth=2 direction=both

最终答复:

锂电链条可以分三段:
1. 上游原料:钴,供给集中于刚果(金),嘉能可是核心生产商,洛阳钼业 KFM 矿需要跟踪政策影响。
2. 中游材料:三元正极,高镍低钴路线持续推进。
3. 下游电池:宁德时代已切换 9 系高镍三元,验证下游需求方向。

这条结论分别来自 2026-05-18 的盘后对话、嘉能可三季报资源笔记和 2026-05-19 宁德调研记录。

Proactive读取当天兴趣主题

auto_dream 会写:

daily/2026-05-18/interests.yaml

示例:

date: 2026-05-18
topic_count: 3
diversity_days: 7
topics:
  - title: 刚果(金)矿权政策对钴供给的影响
    reason: 用户当天多次提到 KFM 矿和钴价风险
    keywords: [钴, 刚果金, 洛阳钼业, KFM]
    paths:
      - daily/2026-05-18/cobalt-supply-risk.md

调用:

reme proactive date=2026-05-18

proactive Job 返回 interests.yaml 中的 topics 和可选 YAML 原文。

场景价值

  • 分析师只负责看资料和表达判断ReMe 把事实落到 daily把长期概念沉淀到 digest。
  • node_search 让 dream 先找已有 digest 再写,避免同一概念每天新建一个文件。
  • search 的图展开让 Agent 先看结构再读正文,减少上下文浪费。
  • 所有结论都落在 Markdown 中,可用普通编辑器审计。

场景二:研发 Agent 的跨会话程序化记忆

主角:张研发,长期在 Claude Code、AgentScope 或其他 Agent 中处理项目问题。

痛点:同类 bug 多次出现Agent 每次都从零开始排查;用户的代码风格、测试习惯、项目偏好只存在于当次对话里。

第一次会话:构建卡死

用户说:

pnpm build 卡在 92%CPU 不高,内存涨得很快。

Agent 排查过程:

1. 清缓存,无效。
2. 升级 terser 插件,无效。
3. 发现 fork-ts-checker 内存不足。
4. 设置 NODE_OPTIONS=--max-old-space-size=8192 后通过。

auto_memory 写入:

session/dialog/build-oom-2026-03-10.jsonl
daily/2026-03-10/build-oom-2026-03-10.md

auto_dream 后生成:

digest/
├── procedure/
│   └── typescript-build-oom.md
└── personal/
    └── code-style.md

示例 digest/procedure/typescript-build-oom.md

---
name: TypeScript 项目构建 OOM 排查路径
description: build 卡住且内存上涨时,优先检查类型检查进程内存
---

# TypeScript 项目构建 OOM 排查路径

执行这个 runbook 时遵循 [[digest/personal/code-style.md]]。

## 症状
构建卡在后段CPU 不高但内存持续上涨。

## 优先路径
1. 检查 fork-ts-checker 或类型检查子进程是否 OOM。
2. 先尝试 `NODE_OPTIONS=--max-old-space-size=8192`3. 清缓存和升级压缩插件只有在有明确证据时再做。

## 已知无效路径
- 单纯删除 `.cache` 未解决 2026-03-10 的问题。
- 升级 terser 插件未解决 2026-03-10 的问题。

## Sources

失败尝试和有效的内存调整记录在 [[daily/2026-03-10/build-oom-2026-03-10.md]] 中。

示例 digest/personal/code-style.md

---
name: 用户代码风格偏好
description: 用户在开发任务中反复表达的工程偏好
---

# 用户代码风格偏好

## 注释
用户不喜欢解释代码字面含义的注释,只接受解释 WHY 或复杂约束的注释。

## 测试
用户偏好针对风险点写聚焦测试,不喜欢大范围无关重构。

第二次会话:相似问题快速召回

六周后用户问:

vite build 也卡在打包阶段,是同一类问题吗?

Agent 先调用:

reme search query="vite build 卡住 内存 上涨 TypeScript OOM" limit=5

命中:

digest/procedure/typescript-build-oom.md
daily/2026-03-10/build-oom-2026-03-10.md

Agent 回复可以直接跳过低价值路径:

上次类似问题是 TypeScript 类型检查进程 OOM。建议优先检查构建阶段的内存和类型检查子进程
先试 `NODE_OPTIONS=--max-old-space-size=8192`。上次清缓存和升级压缩插件都没有解决。

场景价值

  • digest/procedure/ 保存“怎么做”和“哪些路径无效”,让 Agent 复用排查经验。
  • digest/personal/ 保存用户偏好,让 Agent 跨会话遵守同一工程风格。
  • 对话来源记录仍在 session/dialog/daily 记录可追溯digest 只是长期提炼结果。

场景三:个人第二大脑

主角:李工。日常和 Agent 聊工作、读书、家庭安排、跑步训练和旅行计划。

痛点:普通聊天记录按时间堆叠,三个月后只能全文搜索,很难回答“上次 Alice 推荐的那本书是什么”“我为什么改了训练计划”这类联想式问题。

日常输入

李工的一天产生:

daily/2026-04-20/
├── lunch-with-alice.md
├── running-plan.md
└── frontend-design-review.md

auto_dream 抽取到:

digest/
├── personal/
│   ├── alice.md
│   └── exercise-preferences.md
├── procedure/
│   └── frontend-review-checklist.md
└── wiki/
    └── deep-work.md

示例:

---
name: Alice
description: 用户朋友,常推荐阅读材料
---

# Alice

## 阅读推荐
2026-04-20 午餐时推荐过 [[digest/wiki/deep-work.md]],这是一本关于注意力和深度工作的书。

## Sources

这次推荐记录在 [[daily/2026-04-20/lunch-with-alice.md]] 中。

一次联想式回忆

用户问:

上次 Alice 推荐的那本讲注意力的书叫什么?

Agent 可以先搜:

reme search query="Alice 推荐 注意力 书 深度" limit=5

命中:

digest/personal/alice.md
  outlinks:
    -> digest/wiki/deep-work.md
daily/2026-04-20/lunch-with-alice.md

再读:

reme read path=digest/wiki/deep-work.md

最终答复:

是《深度工作》。记录显示 Alice 在 2026-04-20 午餐时推荐过,
你后来把它归到注意力和工作方法主题下。

场景价值

  • daily 保留“当时发生了什么”。
  • digest/personal 记录人、偏好、长期关系。
  • digest/wiki 记录书、概念、主题。
  • wikilink 把“人 -> 书 -> 主题 -> 原始事件”串起来,比单纯按时间翻聊天记录更接近人的回忆方式。