# MemRelay Agent 工作流 在整个任务中把 MemRelay 作为用户规则、项目上下文、开发进度、可复用凭证和共享文件的持久来源。信息一旦明确就记录,不要等到会话结束再凭印象补写。 ## 每次会话开始 1. 调用 `capabilities_get`,确认当前可用工具和依赖状态。 2. 使用已知的当前目录、Git remote 和项目名称调用 `project_resolve_or_create`。它会优先解析已有项目,仅在没有匹配项时创建项目,并保留返回的 `created` 结果。 3. 开始实质工作前调用 `context_get` 和 `checkpoint_get`。直接继承已有规则、决定、事实、经验和最新进度,不要求用户重复说明。 - 调用 `capabilities_get` 后,如果客户端支持 MCP Resource,再读取 `memrelay://guide` 和 `memrelay://capabilities`;以它们作为当前工作流和能力来源。AI 整理、记忆 Git、密码库及其他管理工具只有在能力状态显示可用时才调用。 ## 工作过程中持续记录 - 明确规则保存为 `rule`,偏好保存为 `preference`,稳定信息保存为 `fact`,已确认选择及原因保存为 `decision`,可复用问题与方案保存为 `experience`,产品需求保存为 `prd`,可执行计划保存为 `task_list`。 - 持久信息确认后立即调用 `memory_save`。每次逻辑写入使用唯一 request ID,更新已有记忆时携带当前 revision。 - 不把猜测、临时信息、未解决冲突、普通闲聊、重复总结、秘密值或一次性签名地址保存为普通记忆。 - 可复用文档、程序、软件包、构建产物和共享资料放入文件仓储。按需创建目录;上传时先调用 `file_upload_prepare`,再向返回的一次性 `upload_url` 直接执行 HTTP PUT 传输准确字节,并用 `file_upload_status` 确认完成。下载时调用 `file_get` 使用其签名 `download_url`,不要让文件正文经 MCP 中转。维护便于后续搜索的文件元数据。 ## 保留完整项目进度 - 每完成一个有意义的阶段,以及会话结束前确有修改时,调用 `checkpoint_save`。 - 检查点记录完成内容、原因、关键实现、验证结果、问题与解决方案和明确下一步;没有实质变化时不创建空检查点。 - 会话结束前的最后一个检查点按交接标准书写:“下一步”和“给下个会话”要让零上下文的新会话直接接手——列出未完成线索、会话中的临时约定和需要避开的坑。 - 每个新聊天窗口都先重新解析项目、读取上下文和最新检查点,再开始修改。 ## 同步本地项目文档 - 需要本地文档时调用 `project_export_prepare`,直接运行返回的 PowerShell 或 POSIX 下载命令,把压缩包解压到 `aidocs/`;不要逐条读取记忆后手工重写。 - 确保项目 `.gitignore` 包含 `aidocs/`。 ## 账号与凭证 - 执行登录、SSH、数据库、API 或远程操作前先搜索密码库;唯一匹配时直接使用,不再询问用户。 - 获得、生成或修改任何可复用账号、密码、Token、API 密钥、自定义秘密字段或 TOTP 种子后,立即调用 `secret_save`;优先更新已有匹配条目,不创建重复项。 - 秘密值只进入密码库。普通记忆只记录密码库条目名称、用途和不含秘密的操作方法。 ## 记忆生命周期 - `memory_list` 默认列出待整理来源;`memory_search` 默认使用 `current`,同时搜索稳定整理文档和新的待整理来源,并按结果中的 `read_tool` 调用 `memory_get` 或 `curated_document_get` 读取正文。 - 已整理和已替代的原始 Markdown 仍保留用于追溯。只有需要限定来源或追查历史证据时才使用 `lifecycle=pending`、`covered`、`superseded`、`archived` 或 `all`;需要让旧来源重新参与整理时调用 `memory_mark_pending`。 ## 记忆版本历史 - MemRelay 会自动记录记忆变更。需要追溯时使用记忆仓库状态、历史和差异工具。 - 只有用户明确要求时才恢复单个文档或仓库快照;普通项目开发过程中不要修改远程仓库或版本策略。