跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.xpertai.cn/llms.txt

Use this file to discover all available pages before exploring further.

文件记忆是 Xpert 的内置文件型长期记忆能力。它把可长期复用的用户偏好、项目状态、反馈修正和参考资料保存为 Markdown 文件,让智能体可以在后续会话中检索、读取和补充这些记忆。 Dreaming 是文件记忆的后台整理能力。它会基于现有记忆、使用信号和会话证据运行一个专门的 Dreamer 智能体,对记忆文件进行整理,并生成可追踪的运行记录和报告。

适用场景

  • 保存跨会话仍然有效的用户偏好、长期事实和个性化信息。
  • 沉淀项目背景、阶段性结论、业务规则和可复用上下文。
  • 记录用户对回答的反馈、纠错和后续修正。
  • 需要让管理员直接查看、编辑和审计智能体记忆内容。

记忆类型

文件记忆按用途分为四类,每个 Xpert 拥有独立的记忆空间。
类型用途
user用户偏好、用户档案、长期有效的个性化信息
feedback用户反馈、纠错、对答案风格或业务口径的修正
project项目状态、业务背景、阶段性决策、任务上下文
reference可复用资料、规则说明、流程说明、标准口径

文件结构

文件记忆以一个 Xpert 为单位组织。常见结构如下:
MEMORY.md
user/
feedback/
project/
reference/
.dream/
  • MEMORY.md 是记忆索引,用于快速浏览和召回候选记忆。
  • user/feedback/project/reference/ 保存具体记忆主题文件。
  • .dream/ 保存 Dreaming 运行状态、运行记录、信号和评分缓存,默认不是前台记忆正文。
每个主题文件是带 frontmatter 的 Markdown。frontmatter 中包含记忆 ID、类型、状态、标题、摘要、标签、来源、更新时间和 usage 使用统计。正文部分保存可供智能体阅读的具体内容。

智能体如何使用文件记忆

启用 Xpert 文件记忆中间件后,智能体会获得以下记忆工具:
工具作用
memory_search按自然语言问题搜索相关记忆,可限制记忆类型和返回数量
memory_get读取指定记忆的完整内容,支持使用 memoryIdrelativePathcanonicalRef
memory_write写入或更新一条长期有效的文件记忆
系统会在对话前自动准备记忆索引和摘要。只有当摘要不足、记忆冲突、用户要求来源,或需要正文级细节时,智能体才需要调用 memory_searchmemory_get 文件记忆是辅助上下文,不会覆盖用户当前输入。若当前用户输入与记忆冲突,智能体应优先遵循当前输入,并在必要时说明记忆可能已过期。

自动召回配置

文件记忆中间件支持自动召回相关记忆,并把选中的内容注入到本轮模型上下文中。
配置项说明
召回模式当前支持 hybrid_async,系统会异步准备索引、摘要和候选记忆
召回选择模型用于从候选记忆中选择最相关内容的模型
选择模型超时选择模型的最长等待时间
最大选择数量单轮最多选入多少条详细记忆
摘要数量单轮提供给模型的摘要数量上限
单轮最大详情字节单轮可注入的详细记忆内容上限
单会话最大详情字节一个会话内详细记忆内容的累计上限
当记忆被搜索、读取或写入时,系统会记录使用信号,并更新主题文件中的 usage 统计和 .dream/scorecards/index.json 评分缓存。

自动写回

如果一轮对话中没有显式调用 memory_write,系统会在对话结束后触发自动写回流程。自动写回会读取最近对话内容,判断其中是否存在值得长期保存的信息。
配置项说明
写回模型用于判断是否需要新增、更新或归档记忆的模型
等待策略never_wait 表示不等待后台写回;soft_drain 表示短暂等待后台任务完成
软等待时长soft_drain 模式下最多等待的毫秒数
写回提示词用于指导模型如何判断长期记忆价值
自动写回适合沉淀稳定事实、明确偏好、项目状态和可复用结论。临时闲聊、未经确认的猜测和原始对话转录不适合写入长期记忆。

文件记忆管理页面

进入数字专家的记忆页面后,选择“文件”即可管理文件记忆。 页面左侧是文件工作区,可查看 MEMORY.md、四类记忆目录和具体主题文件。支持打开、编辑、保存、上传和删除文件。 手动编辑记忆文件时建议保持以下规则:
  • MEMORY.md 保持为简洁索引,不在索引中写入大段正文。
  • 主题文件放入正确类型目录。
  • frontmatter 中的 typescopeIdstatustitlesummary 保持有效。
  • 归档内容使用 status: archived,避免直接删除仍有价值的记忆。

Dreaming 配置

文件记忆页面顶部提供 Dreaming 配置。
字段说明
记忆整理智能体选择负责整理文件记忆的 Dreamer Xpert
记忆整理智能体 Key指定 Dreamer Xpert 内部用于执行整理任务的 Agent key,默认通常为 FileMemoryDreamer
打开 Dreamer跳转到所选 Dreamer Xpert 的智能体配置页面
启用 Dream gate开启后,系统会根据 gate 条件判断本次 Dream 是否需要真正执行
最小间隔距离上次有效 Dream 运行至少经过多少分钟
新记忆数上次有效 Dream 之后至少出现多少条新增或更新记忆
会话数上次有效 Dream 之后至少出现多少个相关会话
“记忆整理智能体 Key”不是外部 API Key,而是 Dreamer Xpert 内部某个 Agent 的标识。系统会使用这个 Agent 来读取 Dreaming 证据、整理记忆文件并生成报告。

运行 Dream

点击“Dream”按钮会创建一次手动 Dream 运行。系统会立即返回运行 ID,并在后台继续执行。 Dream 运行会完成以下工作:
  1. 创建运行记录。
  2. 获取当前 Xpert 的 Dream 锁,避免同一个 Xpert 同时运行多个 Dream。
  3. 评估 Dream gate 条件;不满足时标记为 skipped
  4. 准备 evidence 文件,包括记忆清单、信号、评分缓存、会话片段和 instructions。
  5. 运行配置的 Dreamer Xpert。
  6. 校验整理后的记忆文件和 MEMORY.md
  7. 生成 Dream report、validation、changed files 和 DREAMS.md 记录。

Dream 运行状态

状态说明
queued已创建运行,等待后台处理
running正在执行
succeeded执行成功,校验未发现问题
partial执行完成,但校验发现需要处理的问题
failed执行失败
cancelled运行被取消
skippedgate 条件未满足,跳过本次 Dream
同一个 Xpert 的 Dream 会串行执行;如果已有运行在进行中,新的触发会复用或进入等待状态。不同 Xpert 的 Dream 可以独立运行。

查看 Dream 结果

文件记忆页面右侧展示 Dream runs 列表。选择某次运行后,可查看:
  • 运行状态、开始时间、结束时间、变更文件数和问题数。
  • gate 判断结果、新增或更新记忆数、相关会话数和跳过原因。
  • preflight 报告。
  • Dream report,包括整理摘要、变更文件和未解决冲突。
  • validation 校验结果。
  • 运行 artifacts,包括 status.jsonrequest.jsonevidence/gate.jsondream-report.jsonvalidation.jsonchanged-files.json
当运行状态为 partial 时,建议优先查看 validation 和 unresolved conflicts,根据提示修复 frontmatter、索引链接或重复标题等问题。

当前校验规则

Dreaming 完成后,系统会对记忆文件执行结构校验。当前已覆盖:
  • 主题文件 frontmatter 的 Xpert scope 是否匹配当前 Xpert。
  • 是否存在重复标题。
  • 是否存在无法解析的主题文件。
  • MEMORY.md 链接是否指向有效记忆路径。
  • MEMORY.md 是否引用不存在、重复或已归档的主题文件。
  • MEMORY.md 是否出现过长索引项或疑似正文内容。
校验通过时运行状态为 succeeded;存在问题时运行状态为 partial,并在页面中展示需要处理的问题。

相关接口

文件记忆页面使用以下接口:
接口说明
GET /xpert/:id/memory/files获取文件记忆目录
GET /xpert/:id/memory/file读取指定文件
PUT /xpert/:id/memory/file保存指定文件
POST /xpert/:id/memory/file/upload上传文件到记忆目录
DELETE /xpert/:id/memory/file删除指定文件
POST /xpert/:id/memory/dream手动触发 Dream
GET /xpert/:id/memory/dream/config获取 Dreaming 配置
PUT /xpert/:id/memory/dream/config保存 Dreaming 配置
GET /xpert/:id/memory/dream/runs获取 Dream runs 列表
GET /xpert/:id/memory/dream/runs/:runId获取单次 Dream 详情
POST /xpert/:id/memory/dream/runs/:runId/cancel取消尚未开始的 Dream

使用建议

  • 把稳定、可复用的信息写入文件记忆,避免保存临时闲聊。
  • 主题文件保持单一主题,标题和摘要尽量清晰。
  • 批量导入或多轮对话后,可以手动运行 Dream 进行整理。
  • Dream report 出现冲突时,先修复 validation 中列出的问题,再继续运行下一次 Dream。
  • 对关键业务口径建议优先保存到 referenceproject 类型,方便后续检索和审计。