diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..88b75ed3 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,70 @@ +name: Deploy Docs + +on: + push: + branches: [main] + paths: + - 'docs/**' + - '.github/workflows/docs.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment; don't cancel an in-progress run. +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + cache: 'pip' + + - name: Install dependencies + run: pip install "jupyter-book<2" furo sphinx-design sphinxcontrib-mermaid + + - name: Build both language books + run: | + jupyter-book build docs/zh --path-output docs/_build/zh + jupyter-book build docs/en --path-output docs/_build/en + + - name: Assemble site + run: | + rm -rf site + mkdir -p site + # Per-language books served under /zh/ and /en/. + cp -r docs/_build/zh/_build/html site/zh + cp -r docs/_build/en/_build/html site/en + # Shared figures (referenced as ../figure/* from both books). + cp -r docs/figure site/figure + # Root redirect to the default (English) docs. + cp docs/_landing/index.html site/index.html + echo "reme.agentscope.io" > site/CNAME + touch site/.nojekyll + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: site + + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/README.md b/README.md index f37a51d0..667c2871 100644 --- a/README.md +++ b/README.md @@ -105,14 +105,14 @@ curl -s http://127.0.0.1:2333/version -H 'Content-Type: application/json' -d '{} ### Agent Integration -ReMe integrates with supported agent frameworks through **SKILL.md + CLI + hooks (optional)**. A typical integration looks like this: +ReMe runs as a service and exposes its memory through CLI / MCP jobs. Agents adopt it in whatever way fits them — embedding ReMe directly in their own code, or installing it as a plugin — and wire `auto_memory` / `proactive` into their lifecycle so conversations are consolidated into memory and surfaced at the right time. Indexing (`auto_index`) and resource processing (`auto_resource`) run automatically via file watching, and `auto_dream` consolidates daily memories into long-term digests on a schedule. -- Add the [memory skill](skills/reme_memory/SKILL.md) to the agent and grant the agent permission to call the CLI. -- Call `auto_memory` and `proactive` from agent hooks as needed, so conversations are automatically consolidated into daily memories and proactive reminders can be read at the right time. -- `auto_index` and `auto_resource` are triggered by file monitoring to maintain indexes and process resources. -- `auto_dream` is triggered by a scheduled task to further organize daily memories into reusable long-term digest memories. +Integration status across agents: -QwenPaw 2.0 will integrate the new ReMe version. A Claude Code plugin will also be released later to reduce manual integration work. +| Agent | Status | How it integrates | +|------------------------------------------------------------|----------------|-----------------------------------------------------------------------------------------------------------| +| [QwenPaw](https://github.com/agentscope-ai/QwenPaw) | ✅ Available | [Deep SDK integration](https://github.com/agentscope-ai/QwenPaw/blob/main/src/qwenpaw/agents/memory/reme_light_memory_manager.py) — embeds the ReMe app in-process and drives `search` / `auto_memory` / `auto_dream` jobs via `run_job`, reusing the agent's own model (no separate server). | +| [Claude Code](plugins/reme) | ✅ Available | Plugin: HTTP MCP server for recall, a `reme-memory` skill, and a Stop hook that records each session via `auto_memory_cc`. | For more details, see the [Quick Start](docs/zh/quick_start.md). diff --git a/README_ZH.md b/README_ZH.md index c841fcbd..698fe7d3 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -104,14 +104,14 @@ curl -s http://127.0.0.1:2333/version -H 'Content-Type: application/json' -d '{} ### 快速接入 -ReMe 通过 **SKILL.md + CLI + hook(可选)** 接入支持的 Agent 框架。典型接入方式如下: +ReMe 以服务形式运行,通过 CLI / MCP job 对外暴露记忆。各 Agent 按各自合适的方式接入——可以把 ReMe 直接嵌进自己的代码,也可以作为 plugin 安装——并把 `auto_memory` / `proactive` 接入自身生命周期,让对话沉淀为记忆并在合适时机浮现。索引(`auto_index`)与资源加工(`auto_resource`)由文件监控自动触发,`auto_dream` 则按计划把 daily 记忆整理为可长期复用的 digest。 -- 为 Agent 添加 [memory skill](skills/reme_memory/SKILL.md),并授予 Agent 调用 CLI 的权限。 -- 在 Agent hook 中按需调用 `auto_memory` 和 `proactive`,让对话自动沉淀为 daily 记忆,并在合适时机读取主动提醒。 -- `auto_index` 与 `auto_resource` 由文件监控自动触发,负责索引维护和资源加工。 -- `auto_dream` 由定时任务触发,将 daily 记忆进一步整理为可长期复用的 digest 记忆。 +各 Agent 接入状态: -QwenPaw 2.0 将集成新版 ReMe;后续也会推出 Claude Code plugin,进一步降低手动接入成本。 +| Agent | 状态 | 接入方式 | +|------------------------------------------------------|-------------|----------------------------------------------------------------------------------------------| +| [QwenPaw](https://github.com/agentscope-ai/QwenPaw) | ✅ 已支持 | [SDK 深度集成](https://github.com/agentscope-ai/QwenPaw/blob/main/src/qwenpaw/agents/memory/reme_light_memory_manager.py)——进程内嵌入 ReMe 应用,通过 `run_job` 驱动 `search` / `auto_memory` / `auto_dream`,并复用 Agent 自身模型(无需独立 server)。 | +| [Claude Code](plugins/reme) | ✅ 已支持 | Plugin:HTTP MCP server 做召回、`reme-memory` skill,外加在会话结束时经 `auto_memory_cc` 录入的 Stop hook。 | 更多细节见 [快速开始](docs/zh/quick_start.md)。 diff --git a/docs/_landing/index.html b/docs/_landing/index.html new file mode 100644 index 00000000..d74e258e --- /dev/null +++ b/docs/_landing/index.html @@ -0,0 +1,14 @@ + + + + + ReMe Documentation + + + + + + +

Redirecting to the ReMe documentation

+ + diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..d14920e0 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,78 @@ +/* Heading sizes — tighten furo's defaults */ +h1, .bd-article h1 { + font-size: 1.8rem !important; +} + +h2, .bd-article h2 { + font-size: 1.5rem !important; +} + +h3, .bd-article h3 { + font-size: 1.25rem !important; +} + +h4, .bd-article h4 { + font-size: 1.1rem !important; +} + +h5, .bd-article h5 { + font-size: 1rem !important; +} + +h6, .bd-article h6 { + font-size: 0.9rem !important; +} + +/* Centered brand in the sidebar */ +.sidebar-brand { + text-align: center; +} + +.sidebar-brand .sidebar-logo { + max-width: 60%; + margin: 0 auto; +} + +/* Language switcher (injected by switcher.js) */ +.lang-switch { + display: flex; + gap: 0.4rem; + justify-content: center; + margin: 0.4rem 0 0.9rem; +} + +.lang-switch a { + font-size: 0.8rem; + line-height: 1.4; + padding: 0.12rem 0.7rem; + border-radius: 999px; + border: 1px solid var(--color-background-border); + color: var(--color-foreground-secondary); + text-decoration: none; + cursor: pointer; +} + +.lang-switch a:hover { + border-color: var(--color-brand-primary); + color: var(--color-brand-primary); +} + +.lang-switch a.active { + background: var(--color-brand-primary); + border-color: var(--color-brand-primary); + color: #fff; + cursor: default; +} + +.lang-switch--float { + position: fixed; + top: 0.6rem; + right: 0.8rem; + z-index: 50; + margin: 0; + background: var(--color-background-primary); + padding: 0.3rem 0.4rem; + border-radius: 999px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); +} + diff --git a/docs/_static/switcher.js b/docs/_static/switcher.js new file mode 100644 index 00000000..209e4c87 --- /dev/null +++ b/docs/_static/switcher.js @@ -0,0 +1,54 @@ +// Language switcher for the ReMe docs. +// +// Each language is a separate Jupyter Book served under /zh/ and /en/ with the +// same page filenames. This injects a 中文 / EN toggle into the furo sidebar +// (falling back to a floating control) that swaps the language path segment of +// the current URL. +(function () { + "use strict"; + + var path = window.location.pathname; + var current, otherHref; + + if (path.indexOf("/en/") !== -1) { + current = "en"; + otherHref = path.replace("/en/", "/zh/"); + } else if (path.indexOf("/zh/") !== -1) { + current = "zh"; + otherHref = path.replace("/zh/", "/en/"); + } else { + return; // not inside a language book (e.g. the root landing page) + } + + function makeLink(label, lang) { + var a = document.createElement("a"); + a.textContent = label; + if (lang === current) { + a.className = "active"; + } else { + a.href = otherHref; + } + return a; + } + + var wrap = document.createElement("div"); + wrap.className = "lang-switch"; + wrap.appendChild(makeLink("中文", "zh")); + wrap.appendChild(makeLink("EN", "en")); + + function inject() { + var brand = document.querySelector(".sidebar-brand"); + if (brand && brand.parentNode) { + brand.parentNode.insertBefore(wrap, brand.nextSibling); + } else { + wrap.classList.add("lang-switch--float"); + document.body.appendChild(wrap); + } + } + + if (document.readyState !== "loading") { + inject(); + } else { + document.addEventListener("DOMContentLoaded", inject); + } +})(); diff --git a/docs/en/_config.yml b/docs/en/_config.yml new file mode 100644 index 00000000..f17ece14 --- /dev/null +++ b/docs/en/_config.yml @@ -0,0 +1,68 @@ +# Jupyter Book settings — English docs (built as a standalone book, served at /en/). +# Learn more at https://jupyterbook.org/customize/config.html + +project: "ReMe" +title: "
+ AgentScope
+ ReMe +
" +author: Alibaba Tongyi Lab +logo: ../figure/reme_logo.png +copyright: "2025, Tongyi Lab, Alibaba Inc." +only_build_toc_files: true + +execute: + execute_notebooks: off + +parse: + myst_enable_extensions: + - colon_fence + - deflist + - attrs_inline + - dollarmath + +sphinx: + extra_extensions: + - sphinx_design + - sphinxcontrib.mermaid + config: + # Render ```mermaid fences as diagrams; generate heading anchors for in-page links. + myst_fence_as_directive: + - mermaid + myst_heading_anchors: 4 + + # Theme + html_theme: furo + pygments_style: "friendly" + html_show_sphinx: false + html_last_updated_fmt: "%Y-%m-%d" + html_copy_source: false + html_show_sourcelink: false + # Shared assets live in docs/_static (custom.css + the language switcher). + html_static_path: + - "../_static" + html_css_files: + - custom.css + html_js_files: + - switcher.js + use_multitoc_numbering: false + html_theme_options: + sidebar_hide_name: false + source_repository: "https://github.com/agentscope-ai/ReMe" + source_branch: "main" + source_directory: "docs/en/" + footer_icons: + - name: GitHub + url: "https://github.com/agentscope-ai/ReMe" + html: | + + + + class: "" + light_css_variables: + color-brand-primary: "#2196f3" + color-brand-content: "#2196f3" + color-admonition-background: "#f8f9fa" + dark_css_variables: + color-brand-primary: "#64b5f6" + color-brand-content: "#64b5f6" diff --git a/docs/en/_toc.yml b/docs/en/_toc.yml new file mode 100644 index 00000000..0761fa0a --- /dev/null +++ b/docs/en/_toc.yml @@ -0,0 +1,24 @@ +format: jb-book +root: index + +parts: + - caption: Getting Started + chapters: + - file: quick_start + - caption: Core Concepts + chapters: + - file: memory_as_file + - file: framework + - caption: Memory + chapters: + - file: auto_memory + - file: auto_resource + - file: auto_dream + - file: auto_link + - caption: Retrieval & Proactive + chapters: + - file: memory_search + - file: proactive + - caption: Community + chapters: + - file: contributing diff --git a/docs/en/auto_dream.md b/docs/en/auto_dream.md new file mode 100644 index 00000000..b6b5177f --- /dev/null +++ b/docs/en/auto_dream.md @@ -0,0 +1,7 @@ +# Auto Dream + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/auto_link.md b/docs/en/auto_link.md new file mode 100644 index 00000000..d83ed691 --- /dev/null +++ b/docs/en/auto_link.md @@ -0,0 +1,7 @@ +# Auto Link + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/auto_memory.md b/docs/en/auto_memory.md new file mode 100644 index 00000000..29a36f00 --- /dev/null +++ b/docs/en/auto_memory.md @@ -0,0 +1,7 @@ +# Auto Memory + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/auto_resource.md b/docs/en/auto_resource.md new file mode 100644 index 00000000..2e6790ba --- /dev/null +++ b/docs/en/auto_resource.md @@ -0,0 +1,7 @@ +# Auto Resource + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/contributing.md b/docs/en/contributing.md new file mode 100644 index 00000000..c8309f05 --- /dev/null +++ b/docs/en/contributing.md @@ -0,0 +1,7 @@ +# Contributing + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/framework.md b/docs/en/framework.md new file mode 100644 index 00000000..24313440 --- /dev/null +++ b/docs/en/framework.md @@ -0,0 +1,7 @@ +# Framework + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 00000000..e4af1199 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,106 @@ +# Overview + +

Remember Me, Refine Me — a memory management toolkit for AI agents

+ +

+ ReMe Design Philosophy +

+ +ReMe turns conversations and resources into **readable, editable, and searchable +file-based long-term memory**. Long-term memory no longer hides inside a black-box +database — it lives as Markdown files in a workspace directory that both users and +agents can read, write, move, and delete. + +```{note} +English documentation is in progress. The pages below mirror the Chinese structure; +some currently link back to the complete 中文文档. +``` + +## ✨ Core Ideas + +::::{grid} 1 1 2 2 +:gutter: 3 + +:::{grid-item-card} 📄 Memory as File +Markdown files with frontmatter and wikilinks act as memory nodes that users and +agents can edit directly. +::: + +:::{grid-item-card} 🌱 Self-evolving knowledge base +Auto Memory / Resource / Dream progressively distill conversations and resources into +long-term memory, weaving wikilink relationships automatically. +::: + +:::{grid-item-card} 🔎 Progressive hybrid search +wikilinks + BM25 + embeddings combine keyword matching, semantic recall, and +relationship expansion. +::: + +:::{grid-item-card} 🤝 Agent-friendly integration +`SKILL.md` + CLI integration lets different agents read, write, maintain, and reuse memory. +::: + +:::: + +## 🔄 Memory Pipeline + +ReMe's capabilities follow a **capture → consolidate → recall** pipeline: + +- **Capture** — [Auto Memory](auto_memory.md) distills conversations into daily cards; + [Auto Resource](auto_resource.md) interprets resource files. +- **Consolidate** — [Auto Dream](auto_dream.md) extracts and integrates daily notes into + long-term `digest/`; [Auto Link](auto_link.md) weaves source and related wikilinks. +- **Recall** — [Memory Search](memory_search.md) does hybrid retrieval with link expansion; + [Proactive](proactive.md) surfaces "what's worth attention today". + +The underlying file model and runtime are covered in +[Memory as File](memory_as_file.md) and [Framework](framework.md). + +## 📚 Start Reading + +::::{grid} 1 2 2 3 +:gutter: 3 + +:::{grid-item-card} 🚀 Quick Start +:link: quick_start +:link-type: doc + +Install, launch, and run your first write, index, and retrieval. +::: + +:::{grid-item-card} 📄 Memory as File +:link: memory_as_file +:link-type: doc + +The file-based memory model: layering, frontmatter, wikilinks, chunking. +::: + +:::{grid-item-card} 🏗️ Framework +:link: framework +:link-type: doc + +The Application / Service / Job / Step runtime and dependency injection. +::: + +:::{grid-item-card} 🧠 Auto Memory +:link: auto_memory +:link-type: doc + +How conversations become daily memory cards with preserved provenance. +::: + +:::{grid-item-card} 🔎 Memory Search +:link: memory_search +:link-type: doc + +Index building, hybrid recall, and progressive link expansion. +::: + +:::{grid-item-card} ✨ Proactive +:link: proactive +:link-type: doc + +Reading the day's interest topics to drive proactive reminders and insights. +::: + +:::: diff --git a/docs/en/memory_as_file.md b/docs/en/memory_as_file.md new file mode 100644 index 00000000..5f73af91 --- /dev/null +++ b/docs/en/memory_as_file.md @@ -0,0 +1,7 @@ +# Memory as File + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/memory_search.md b/docs/en/memory_search.md new file mode 100644 index 00000000..0a6dc3bc --- /dev/null +++ b/docs/en/memory_search.md @@ -0,0 +1,7 @@ +# Memory Search + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/proactive.md b/docs/en/proactive.md new file mode 100644 index 00000000..499fba83 --- /dev/null +++ b/docs/en/proactive.md @@ -0,0 +1,7 @@ +# Proactive + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/en/quick_start.md b/docs/en/quick_start.md new file mode 100644 index 00000000..26fa3603 --- /dev/null +++ b/docs/en/quick_start.md @@ -0,0 +1,7 @@ +# Quick Start + +```{note} +📖 The English version of this page is in progress. + +In the meantime, please read the 中文版本. +``` diff --git a/docs/zh/_config.yml b/docs/zh/_config.yml new file mode 100644 index 00000000..d5367323 --- /dev/null +++ b/docs/zh/_config.yml @@ -0,0 +1,68 @@ +# Jupyter Book settings — Chinese docs (built as a standalone book, served at /zh/). +# Learn more at https://jupyterbook.org/customize/config.html + +project: "ReMe" +title: "
+ AgentScope
+ ReMe +
" +author: Alibaba Tongyi Lab +logo: ../figure/reme_logo.png +copyright: "2025, Tongyi Lab, Alibaba Inc." +only_build_toc_files: true + +execute: + execute_notebooks: off + +parse: + myst_enable_extensions: + - colon_fence + - deflist + - attrs_inline + - dollarmath + +sphinx: + extra_extensions: + - sphinx_design + - sphinxcontrib.mermaid + config: + # Render ```mermaid fences as diagrams; generate heading anchors for in-page links. + myst_fence_as_directive: + - mermaid + myst_heading_anchors: 4 + + # Theme + html_theme: furo + pygments_style: "friendly" + html_show_sphinx: false + html_last_updated_fmt: "%Y-%m-%d" + html_copy_source: false + html_show_sourcelink: false + # Shared assets live in docs/_static (custom.css + the language switcher). + html_static_path: + - "../_static" + html_css_files: + - custom.css + html_js_files: + - switcher.js + use_multitoc_numbering: false + html_theme_options: + sidebar_hide_name: false + source_repository: "https://github.com/agentscope-ai/ReMe" + source_branch: "main" + source_directory: "docs/zh/" + footer_icons: + - name: GitHub + url: "https://github.com/agentscope-ai/ReMe" + html: | + + + + class: "" + light_css_variables: + color-brand-primary: "#2196f3" + color-brand-content: "#2196f3" + color-admonition-background: "#f8f9fa" + dark_css_variables: + color-brand-primary: "#64b5f6" + color-brand-content: "#64b5f6" diff --git a/docs/zh/_toc.yml b/docs/zh/_toc.yml new file mode 100644 index 00000000..e0ecf5ce --- /dev/null +++ b/docs/zh/_toc.yml @@ -0,0 +1,24 @@ +format: jb-book +root: index + +parts: + - caption: 入门 + chapters: + - file: quick_start + - caption: 核心概念 + chapters: + - file: memory_as_file + - file: framework + - caption: 记忆 + chapters: + - file: auto_memory + - file: auto_resource + - file: auto_dream + - file: auto_link + - caption: 检索与主动 + chapters: + - file: memory_search + - file: proactive + - caption: 社区 + chapters: + - file: contributing diff --git a/docs/zh/index.md b/docs/zh/index.md new file mode 100644 index 00000000..883f4a3d --- /dev/null +++ b/docs/zh/index.md @@ -0,0 +1,95 @@ +# 概览 + +

Remember Me, Refine Me —— 面向 AI Agent 的记忆管理工具箱

+ +

+ ReMe 设计哲学 +

+ +ReMe 把对话和资源转化为**可读、可写、可检索的文件化长期记忆**:长期记忆不再藏在黑盒数据库里, +而是落在 workspace 目录中的 Markdown 文件里,用户和 Agent 都能直接读写、移动、删除。 + +## ✨ 核心理念 + +::::{grid} 1 1 2 2 +:gutter: 3 + +:::{grid-item-card} 📄 文件即记忆 +Markdown 文件 + frontmatter + wikilink 作为记忆节点,用户和 Agent 都能直接编辑。 +::: + +:::{grid-item-card} 🌱 自进化知识库 +Auto Memory / Resource / Dream 把对话与资源逐步沉淀为长期记忆,并自动织入 wikilink 关系。 +::: + +:::{grid-item-card} 🔎 渐进式混合检索 +wikilink + BM25 + 向量召回,融合关键词匹配、语义召回与关系展开。 +::: + +:::{grid-item-card} 🤝 Agent 友好集成 +`SKILL.md` + CLI 集成,让不同 Agent 都能读、写、维护和复用记忆。 +::: + +:::: + +## 🔄 记忆流水线 + +ReMe 的能力沿一条 **写入 → 沉淀 → 读取** 的流水线组织: + +- **写入** —— [Auto Memory](auto_memory.md) 把对话沉淀为 daily 卡片, + [Auto Resource](auto_resource.md) 解读资源文件。 +- **沉淀** —— [Auto Dream](auto_dream.md) 把 daily 抽取整合为长期 `digest/`, + [Auto Link](auto_link.md) 在此过程中织入来源与关联 wikilink。 +- **读取** —— [Memory Search](memory_search.md) 做混合检索与链接展开, + [Proactive](proactive.md) 暴露“今天值得主动关注什么”。 + +底层的文件模型与运行时分别见 [Memory as File](memory_as_file.md) 与 [代码框架](framework.md)。 + +## 📚 开始阅读 + +::::{grid} 1 2 2 3 +:gutter: 3 + +:::{grid-item-card} 🚀 快速开始 +:link: quick_start +:link-type: doc + +安装、启动,完成第一次写入、索引与检索。 +::: + +:::{grid-item-card} 📄 Memory as File +:link: memory_as_file +:link-type: doc + +文件化记忆模型:分层、frontmatter、wikilink、chunking。 +::: + +:::{grid-item-card} 🏗️ 代码框架 +:link: framework +:link-type: doc + +Application / Service / Job / Step 运行时与依赖注入。 +::: + +:::{grid-item-card} 🧠 Auto Memory +:link: auto_memory +:link-type: doc + +对话如何沉淀为 daily 记忆卡片并保留出处。 +::: + +:::{grid-item-card} 🔎 Memory Search +:link: memory_search +:link-type: doc + +索引构建、混合召回与渐进式链接展开。 +::: + +:::{grid-item-card} ✨ Proactive +:link: proactive +:link-type: doc + +读取当天兴趣主题,驱动主动提醒与洞察。 +::: + +::::