{"componentChunkName":"component---src-templates-acg-portal-new-template-tsx","path":"/gmpl4ub1a","result":{"data":{"markdownRemark":{"html":"<p>在 REST API 模式下，您可以在自己的流程中主动决定什么时候读记忆、什么时候写记忆，以及如何使用记忆结果。所有接口通过 HTTPS 调用，使用 HTTP Bearer Token 认证。</p>\n<h1 id=\"认证方式\"><a href=\"#%E8%AE%A4%E8%AF%81%E6%96%B9%E5%BC%8F\" aria-label=\"认证方式 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>认证方式</h1>\n<p>在请求头中携带 API Key：</p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Plain Text</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-text\"><code><span class=\"line-number\">1</span>Authorization: Bearer &lt;your-api-key&gt;\n<span class=\"line-number\">2</span>Content-Type: application/json</code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p>文件上传接口使用 <code>multipart/form-data</code>。</p>\n<h1 id=\"核心接口\"><a href=\"#%E6%A0%B8%E5%BF%83%E6%8E%A5%E5%8F%A3\" aria-label=\"核心接口 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>核心接口</h1>\n<h2 id=\"1-bank-管理\"><a href=\"#1-bank-%E7%AE%A1%E7%90%86\" aria-label=\"1 bank 管理 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Bank 管理</h2>\n<table>\n<thead>\n<tr>\n<th>方法</th>\n<th>接口路径</th>\n<th>用途</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>GET</td>\n<td><code>/banks</code></td>\n<td>列出当前 API Key 可访问的 Bank</td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/banks</code></td>\n<td>创建或初始化 Bank，请求体为 <code>{ bank_id }</code></td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"2-retain-存储记忆\"><a href=\"#2-retain-%E5%AD%98%E5%82%A8%E8%AE%B0%E5%BF%86\" aria-label=\"2 retain 存储记忆 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Retain 存储记忆</h2>\n<table>\n<thead>\n<tr>\n<th>方法</th>\n<th>接口路径</th>\n<th>用途</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>POST</td>\n<td><code>/memories/retain</code></td>\n<td>同步写入文本内容，适合小批量或需要立即得到结果的场景</td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/memories/retain_async</code></td>\n<td>异步写入文本内容，适合较大文本或批量数据，返回后台操作信息</td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/files/retain</code></td>\n<td>上传一个或多个文件并异步写入记忆，表单字段 <code>files</code> 为文件列表，<code>request</code> 为 JSON 字符串</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Retain 请求字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>bank_id</code></td>\n<td>string</td>\n<td>目标 Bank，也兼容 <code>agent_id</code></td>\n</tr>\n<tr>\n<td><code>items</code></td>\n<td>array</td>\n<td>要写入的内容列表，每项至少包含 <code>content</code></td>\n</tr>\n<tr>\n<td><code>items[].content</code></td>\n<td>string</td>\n<td>自然语言文本，建议保留完整上下文</td>\n</tr>\n<tr>\n<td><code>items[].timestamp</code></td>\n<td>string</td>\n<td>事件发生时间，建议使用 ISO 8601 格式；传 <code>\"unset\"</code> 表示无时间信息</td>\n</tr>\n<tr>\n<td><code>items[].context</code></td>\n<td>string</td>\n<td>内容来源或场景，如 <code>support chat</code>、<code>code review</code>、<code>meeting notes</code></td>\n</tr>\n<tr>\n<td><code>items[].document_id</code></td>\n<td>string</td>\n<td>稳定文档 ID，便于更新而非重复写入</td>\n</tr>\n<tr>\n<td><code>items[].update_mode</code></td>\n<td>string</td>\n<td>同名 document_id 的处理方式：<code>replace</code>（默认，删除旧内容后重新处理）或 <code>append</code>（追加新内容到已有文档）</td>\n</tr>\n<tr>\n<td><code>items[].tags</code></td>\n<td>string[]</td>\n<td>范围标签，用于后续检索和多租户隔离</td>\n</tr>\n<tr>\n<td><code>items[].metadata</code></td>\n<td>object</td>\n<td>来源系统、外部 ID 等附加信息</td>\n</tr>\n<tr>\n<td><code>items[].observation_scopes</code></td>\n<td>string</td>\n<td>观察聚合粒度：<code>combined</code>（默认，按全部标签聚合）、<code>per_tag</code>（按每个标签独立聚合）、<code>all_combinations</code>（按所有标签组合聚合）、<code>custom</code>（自定义标签组合）</td>\n</tr>\n<tr>\n<td><code>document_tags</code></td>\n<td>string[]</td>\n<td>应用到文档级别的标签</td>\n</tr>\n</tbody>\n</table>\n<p><strong>文件上传字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>files</code></td>\n<td>file[]</td>\n<td>一个或多个上传文件，字段名必须是 <code>files</code></td>\n</tr>\n<tr>\n<td><code>request</code></td>\n<td>string</td>\n<td>JSON 字符串，至少包含 <code>bank_id</code>，可包含 <code>document_id</code>、<code>tags</code>、<code>context</code> 等信息</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"3-recall-检索记忆\"><a href=\"#3-recall-%E6%A3%80%E7%B4%A2%E8%AE%B0%E5%BF%86\" aria-label=\"3 recall 检索记忆 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Recall 检索记忆</h2>\n<table>\n<thead>\n<tr>\n<th>方法</th>\n<th>接口路径</th>\n<th>用途</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>POST</td>\n<td><code>/recall</code></td>\n<td>按自然语言查询检索相关记忆，适合 Agent 回复前注入上下文</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Recall 请求字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>bank_id</code></td>\n<td>string</td>\n<td>目标 Bank。未传时部分部署会使用 <code>default</code>，不建议依赖默认值</td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td>string</td>\n<td>自然语言查询（必填，最多 500 tokens）</td>\n</tr>\n<tr>\n<td><code>budget</code></td>\n<td>string</td>\n<td>检索强度：<code>low</code>（快速查找）、<code>mid</code>（日常推荐）、<code>high</code>（深度检索），默认 <code>mid</code></td>\n</tr>\n<tr>\n<td><code>max_tokens</code></td>\n<td>number</td>\n<td>限制返回上下文大小，默认 4096</td>\n</tr>\n<tr>\n<td><code>types</code></td>\n<td>string[]</td>\n<td>按事实类型过滤：<code>world</code>（客观事实）、<code>experience</code>（经验事实）、<code>observation</code>（观察）</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>string[]</td>\n<td>只检索匹配标签的记忆</td>\n</tr>\n<tr>\n<td><code>tags_match</code></td>\n<td>string</td>\n<td>标签匹配方式：<code>any</code>（默认，含无标签）、<code>any_strict</code>（排除无标签）、<code>all</code>、<code>all_strict</code></td>\n</tr>\n<tr>\n<td><code>query_timestamp</code></td>\n<td>string</td>\n<td>把查询锚定到指定时间点，ISO 8601 格式</td>\n</tr>\n<tr>\n<td><code>include</code></td>\n<td>object</td>\n<td>可包含 <code>entities</code>（默认开启）、<code>chunks</code>（返回原始分块）、<code>source_facts</code>（返回观察的来源事实）等扩展信息</td>\n</tr>\n<tr>\n<td><code>trace</code></td>\n<td>boolean</td>\n<td>返回检索追踪信息，便于调试</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Recall 响应字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>results</code></td>\n<td>array</td>\n<td>按相关性排序的记忆列表，每项包含 <code>id</code>、<code>text</code>、<code>type</code>、<code>context</code>、<code>tags</code>、<code>entities</code>、<code>occurred_start</code>、<code>occurred_end</code>、<code>mentioned_at</code>、<code>document_id</code> 等</td>\n</tr>\n<tr>\n<td><code>source_facts</code></td>\n<td>object</td>\n<td>仅当 <code>include.source_facts</code> 开启时返回，以事实 ID 为键的来源事实字典</td>\n</tr>\n<tr>\n<td><code>chunks</code></td>\n<td>object</td>\n<td>仅当 <code>include.chunks</code> 开启时返回，以分块 ID 为键的原始文本字典</td>\n</tr>\n<tr>\n<td><code>trace</code></td>\n<td>object</td>\n<td>仅当 <code>trace: true</code> 时返回，包含每阶段的耗时和检索细节</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"4-reflect-智能推理\"><a href=\"#4-reflect-%E6%99%BA%E8%83%BD%E6%8E%A8%E7%90%86\" aria-label=\"4 reflect 智能推理 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. Reflect 智能推理</h2>\n<table>\n<thead>\n<tr>\n<th>方法</th>\n<th>接口路径</th>\n<th>用途</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>POST</td>\n<td><code>/reflect</code></td>\n<td>基于记忆生成综合回答，适合总结、判断、画像和状态分析</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Reflect 请求字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>bank_id</code></td>\n<td>string</td>\n<td>目标 Bank</td>\n</tr>\n<tr>\n<td><code>query</code></td>\n<td>string</td>\n<td>需要推理回答的问题（必填）</td>\n</tr>\n<tr>\n<td><code>budget</code></td>\n<td>string</td>\n<td>推理搜索强度：<code>low</code>（默认，浅层快速）、<code>mid</code>（多源核查）、<code>high</code>（深度探索），默认 <code>low</code></td>\n</tr>\n<tr>\n<td><code>max_tokens</code></td>\n<td>number</td>\n<td>限制回答长度，默认 4096</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>string</td>\n<td>为推理提供情境信息，影响推理方向</td>\n</tr>\n<tr>\n<td><code>response_schema</code></td>\n<td>object</td>\n<td>JSON Schema 对象，传入后返回结构化输出（<code>structured_output</code> 字段），适用于程序化处理</td>\n</tr>\n<tr>\n<td><code>include_facts</code></td>\n<td>boolean</td>\n<td>返回回答依据的事实（<code>based_on</code> 字段）</td>\n</tr>\n<tr>\n<td><code>include_tool_calls</code></td>\n<td>boolean</td>\n<td>返回内部检索步骤，便于调试</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>string[]</td>\n<td>限定 Reflect 可访问的记忆范围</td>\n</tr>\n<tr>\n<td><code>tags_match</code></td>\n<td>string</td>\n<td>标签匹配方式，与 Recall 一致</td>\n</tr>\n<tr>\n<td><code>fact_types</code></td>\n<td>string[]</td>\n<td>限制事实类型：<code>world</code>、<code>experience</code>、<code>observation</code></td>\n</tr>\n<tr>\n<td><code>exclude_mental_models</code></td>\n<td>boolean</td>\n<td>跳过心智模型，强制从事实和观察推理</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Reflect 响应字段</strong></p>\n<table>\n<thead>\n<tr>\n<th>字段</th>\n<th>类型</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>text</code></td>\n<td>string</td>\n<td>综合回答文本（Markdown 格式）；使用 <code>response_schema</code> 时为空</td>\n</tr>\n<tr>\n<td><code>structured_output</code></td>\n<td>object</td>\n<td>仅当传入 <code>response_schema</code> 时返回，按 Schema 解析的结构化结果</td>\n</tr>\n<tr>\n<td><code>based_on</code></td>\n<td>object</td>\n<td>仅当 <code>include_facts: true</code> 时返回，包含 <code>memories</code>、<code>mental_models</code>、<code>directives</code> 三个列表</td>\n</tr>\n<tr>\n<td><code>usage</code></td>\n<td>object</td>\n<td>本次推理的 Token 用量：<code>input_tokens</code>、<code>output_tokens</code>、<code>total_tokens</code></td>\n</tr>\n<tr>\n<td><code>trace</code></td>\n<td>object</td>\n<td>仅当 <code>include_tool_calls: true</code> 时返回，包含完整的推理步骤日志</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"5-查询与管理数据\"><a href=\"#5-%E6%9F%A5%E8%AF%A2%E4%B8%8E%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE\" aria-label=\"5 查询与管理数据 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. 查询与管理数据</h2>\n<table>\n<thead>\n<tr>\n<th>方法</th>\n<th>接口路径</th>\n<th>用途</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>GET</td>\n<td><code>/list?bank_id=...</code></td>\n<td>分页列出记忆，可按 <code>type</code>、<code>q</code>、<code>limit</code>、<code>offset</code> 过滤</td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/documents?bank_id=...</code></td>\n<td>列出导入文档</td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/entities?bank_id=...</code></td>\n<td>列出实体</td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/entities/graph?bank_id=...</code></td>\n<td>获取实体共现图</td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/operations/{bankId}</code></td>\n<td>查看异步任务，支持 <code>status</code>、<code>type</code>、<code>limit</code>、<code>offset</code></td>\n</tr>\n<tr>\n<td>DELETE</td>\n<td><code>/operations/{bankId}?operation_id=...</code></td>\n<td>取消待处理任务</td>\n</tr>\n</tbody>\n</table>\n<h1 id=\"请求示例\"><a href=\"#%E8%AF%B7%E6%B1%82%E7%A4%BA%E4%BE%8B\" aria-label=\"请求示例 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>请求示例</h1>\n<p><strong>Retain 存储文本记忆</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/memories/retain\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -H <span class=\"token string\">\"Content-Type: application/json\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">4</span>  -d <span class=\"token string\">'{\n<span class=\"line-number\">5</span>    \"bank_id\": \"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">6</span>    \"items\": [\n<span class=\"line-number\">7</span>      {\n<span class=\"line-number\">8</span>        \"content\": \"用户偏好使用 TypeScript、React 和 Tailwind 构建前端页面。\",\n<span class=\"line-number\">9</span>        \"context\": \"project onboarding\",\n<span class=\"line-number\">10</span>        \"document_id\": \"onboarding-session-001\",\n<span class=\"line-number\">11</span>        \"timestamp\": \"2026-05-12T10:00:00+08:00\",\n<span class=\"line-number\">12</span>        \"tags\": [\"user:demo\", \"project:frontend\"]\n<span class=\"line-number\">13</span>      }\n<span class=\"line-number\">14</span>    ]\n<span class=\"line-number\">15</span>  }'</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Retain 追加内容到已有文档</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/memories/retain\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -H <span class=\"token string\">\"Content-Type: application/json\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">4</span>  -d <span class=\"token string\">'{\n<span class=\"line-number\">5</span>    \"bank_id\": \"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">6</span>    \"items\": [\n<span class=\"line-number\">7</span>      {\n<span class=\"line-number\">8</span>        \"content\": \"新增讨论：团队决定将状态管理从 Redux 迁移到 Zustand。\",\n<span class=\"line-number\">9</span>        \"document_id\": \"onboarding-session-001\",\n<span class=\"line-number\">10</span>        \"update_mode\": \"append\",\n<span class=\"line-number\">11</span>        \"tags\": [\"user:demo\", \"project:frontend\"]\n<span class=\"line-number\">12</span>      }\n<span class=\"line-number\">13</span>    ]\n<span class=\"line-number\">14</span>  }'</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Retain 上传文件写入记忆</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/files/retain\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -F <span class=\"token string\">'request={\n<span class=\"line-number\">4</span>    \"bank_id\":\"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">5</span>    \"document_id\":\"product-guide-001\",\n<span class=\"line-number\">6</span>    \"tags\":[\"project:docs\"]\n<span class=\"line-number\">7</span>  }'</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">8</span>  -F <span class=\"token string\">\"files=@./product-guide.md;type=text/markdown\"</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Recall 检索相关记忆</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/recall\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -H <span class=\"token string\">\"Content-Type: application/json\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">4</span>  -d <span class=\"token string\">'{\n<span class=\"line-number\">5</span>    \"bank_id\": \"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">6</span>    \"query\": \"这个用户偏好的前端技术栈是什么？\",\n<span class=\"line-number\">7</span>    \"budget\": \"mid\",\n<span class=\"line-number\">8</span>    \"tags\": [\"user:demo\"],\n<span class=\"line-number\">9</span>    \"tags_match\": \"all_strict\",\n<span class=\"line-number\">10</span>    \"max_tokens\": 1200,\n<span class=\"line-number\">11</span>    \"trace\": true\n<span class=\"line-number\">12</span>  }'</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Recall JavaScript 示例</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Javascript</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-javascript\"><code><span class=\"line-number\">1</span><span class=\"token keyword\">const</span> apiBaseUrl <span class=\"token operator\">=</span> process<span class=\"token punctuation\">.</span>env<span class=\"token punctuation\">.</span><span class=\"token constant\">MEMORY_API_BASE_URL</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">2</span><span class=\"token keyword\">const</span> memoryKey <span class=\"token operator\">=</span> process<span class=\"token punctuation\">.</span>env<span class=\"token punctuation\">.</span><span class=\"token constant\">MEMORY_API_KEY</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">3</span><span class=\"token keyword\">const</span> bankId <span class=\"token operator\">=</span> process<span class=\"token punctuation\">.</span>env<span class=\"token punctuation\">.</span><span class=\"token constant\">MEMORY_BANK_ID</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">4</span>\n<span class=\"line-number\">5</span><span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span> <span class=\"token function\">recallUserContext</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">userMessage</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">6</span>  <span class=\"token keyword\">const</span> response <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> <span class=\"token function\">fetch</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>apiBaseUrl<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">/recall</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">7</span>    method<span class=\"token punctuation\">:</span> <span class=\"token string\">\"POST\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">8</span>    headers<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">9</span>      <span class=\"token string\">\"Authorization\"</span><span class=\"token punctuation\">:</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Bearer </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>memoryKey<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">10</span>      <span class=\"token string\">\"Content-Type\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"application/json\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">11</span>    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">12</span>    body<span class=\"token punctuation\">:</span> <span class=\"token constant\">JSON</span><span class=\"token punctuation\">.</span><span class=\"token function\">stringify</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n<span class=\"line-number\">13</span>      bank_id<span class=\"token punctuation\">:</span> bankId<span class=\"token punctuation\">,</span>\n<span class=\"line-number\">14</span>      query<span class=\"token punctuation\">:</span> userMessage<span class=\"token punctuation\">,</span>\n<span class=\"line-number\">15</span>      budget<span class=\"token punctuation\">:</span> <span class=\"token string\">\"mid\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">16</span>      tags<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"user:demo\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">17</span>      tags_match<span class=\"token punctuation\">:</span> <span class=\"token string\">\"all_strict\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">18</span>    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">19</span>  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">20</span>\n<span class=\"line-number\">21</span>  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>response<span class=\"token punctuation\">.</span>ok<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"line-number\">22</span>    <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Error</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Recall failed: </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>response<span class=\"token punctuation\">.</span>status<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">23</span>  <span class=\"token punctuation\">}</span>\n<span class=\"line-number\">24</span>\n<span class=\"line-number\">25</span>  <span class=\"token keyword\">return</span> response<span class=\"token punctuation\">.</span><span class=\"token function\">json</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"line-number\">26</span><span class=\"token punctuation\">}</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Recall Python 示例</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Python</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-python\"><code><span class=\"line-number\">1</span><span class=\"token keyword\">import</span> os\n<span class=\"line-number\">2</span><span class=\"token keyword\">import</span> requests\n<span class=\"line-number\">3</span>\n<span class=\"line-number\">4</span>api_base_url <span class=\"token operator\">=</span> os<span class=\"token punctuation\">.</span>environ<span class=\"token punctuation\">[</span><span class=\"token string\">\"MEMORY_API_BASE_URL\"</span><span class=\"token punctuation\">]</span>\n<span class=\"line-number\">5</span>api_key <span class=\"token operator\">=</span> os<span class=\"token punctuation\">.</span>environ<span class=\"token punctuation\">[</span><span class=\"token string\">\"MEMORY_API_KEY\"</span><span class=\"token punctuation\">]</span>\n<span class=\"line-number\">6</span>bank_id <span class=\"token operator\">=</span> os<span class=\"token punctuation\">.</span>environ<span class=\"token punctuation\">[</span><span class=\"token string\">\"MEMORY_BANK_ID\"</span><span class=\"token punctuation\">]</span>\n<span class=\"line-number\">7</span>\n<span class=\"line-number\">8</span>resp <span class=\"token operator\">=</span> requests<span class=\"token punctuation\">.</span>post<span class=\"token punctuation\">(</span>\n<span class=\"line-number\">9</span>    <span class=\"token string-interpolation\"><span class=\"token string\">f\"</span><span class=\"token interpolation\"><span class=\"token punctuation\">{</span>api_base_url<span class=\"token punctuation\">}</span></span><span class=\"token string\">/recall\"</span></span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">10</span>    headers<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>\n<span class=\"line-number\">11</span>        <span class=\"token string\">\"Authorization\"</span><span class=\"token punctuation\">:</span> <span class=\"token string-interpolation\"><span class=\"token string\">f\"Bearer </span><span class=\"token interpolation\"><span class=\"token punctuation\">{</span>api_key<span class=\"token punctuation\">}</span></span><span class=\"token string\">\"</span></span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">12</span>        <span class=\"token string\">\"Content-Type\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"application/json\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">13</span>    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">14</span>    json<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>\n<span class=\"line-number\">15</span>        <span class=\"token string\">\"bank_id\"</span><span class=\"token punctuation\">:</span> bank_id<span class=\"token punctuation\">,</span>\n<span class=\"line-number\">16</span>        <span class=\"token string\">\"query\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"这个用户最近在做什么项目？\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">17</span>        <span class=\"token string\">\"budget\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"mid\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">18</span>        <span class=\"token string\">\"tags\"</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"user:demo\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">19</span>        <span class=\"token string\">\"tags_match\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"all_strict\"</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">20</span>    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">21</span>    timeout<span class=\"token operator\">=</span><span class=\"token number\">30</span><span class=\"token punctuation\">,</span>\n<span class=\"line-number\">22</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">23</span>\n<span class=\"line-number\">24</span>resp<span class=\"token punctuation\">.</span>raise_for_status<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n<span class=\"line-number\">25</span><span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>resp<span class=\"token punctuation\">.</span>json<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Reflect 智能推理</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/reflect\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -H <span class=\"token string\">\"Content-Type: application/json\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">4</span>  -d <span class=\"token string\">'{\n<span class=\"line-number\">5</span>    \"bank_id\": \"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">6</span>    \"query\": \"请总结这个用户的工程偏好，并给出接下来生成代码时应遵循的建议。\",\n<span class=\"line-number\">7</span>    \"budget\": \"mid\",\n<span class=\"line-number\">8</span>    \"include_facts\": true,\n<span class=\"line-number\">9</span>    \"tags\": [\"user:demo\"],\n<span class=\"line-number\">10</span>    \"tags_match\": \"all_strict\"\n<span class=\"line-number\">11</span>  }'</span></code></pre>\n            </div>\n        </div>\n    </div>\n  \n<p><strong>Reflect 结构化输出</strong></p>\n\n    <div class=\"code-block-wrapper\">\n        <div class=\"code-block\">\n            <div class=\"code-block-header\">\n                <span class=\"code-block-name\">Bash</span>\n                <button class=\"code-copy-btn\" data-tooltip-text=\"\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"> <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.57894 3.45614C5.57894 3.38832 5.63392 3.33333 5.70175 3.33333H12.5439C12.6117 3.33333 12.6667 3.38832 12.6667 3.45614V10.2982C12.6667 10.3661 12.6117 10.4211 12.5439 10.4211H11.7544V5.70175C11.7544 4.89754 11.1025 4.24561 10.2982 4.24561H5.57894V3.45614ZM4.24561 4.24561V3.45614C4.24561 2.65194 4.89754 2 5.70175 2H12.5439C13.3481 2 14 2.65194 14 3.45614V10.2982C14 11.1025 13.3481 11.7544 12.5439 11.7544H11.7544V12.5439C11.7544 13.3481 11.1025 14 10.2982 14H3.45614C2.65194 14 2 13.3481 2 12.5439V5.70175C2 4.89754 2.65194 4.24561 3.45614 4.24561H4.24561ZM3.33333 5.70175C3.33333 5.63392 3.38832 5.57894 3.45614 5.57894H10.2982C10.3661 5.57894 10.4211 5.63392 10.4211 5.70175V12.5439C10.4211 12.6117 10.3661 12.6667 10.2982 12.6667H3.45614C3.38832 12.6667 3.33333 12.6117 3.33333 12.5439V5.70175Z\" fill=\"currentColor\"></path> </svg>\n                    复制\n                </button>\n            </div>\n            <div class=\"code-block-content\">\n                <pre class=\"language-bash\"><code><span class=\"line-number\">1</span><span class=\"token function\">curl</span> <span class=\"token string\">\"<span class=\"token variable\">$MEMORY_API_BASE_URL</span>/reflect\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">2</span>  -H <span class=\"token string\">\"Authorization: Bearer <span class=\"token variable\">$MEMORY_API_KEY</span>\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">3</span>  -H <span class=\"token string\">\"Content-Type: application/json\"</span> <span class=\"token punctuation\">\\</span>\n<span class=\"line-number\">4</span>  -d <span class=\"token string\">'{\n<span class=\"line-number\">5</span>    \"bank_id\": \"'</span><span class=\"token string\">\"<span class=\"token variable\">$MEMORY_BANK_ID</span>\"</span><span class=\"token string\">'\",\n<span class=\"line-number\">6</span>    \"query\": \"这个用户适合使用什么前端框架？\",\n<span class=\"line-number\">7</span>    \"budget\": \"low\",\n<span class=\"line-number\">8</span>    \"response_schema\": {\n<span class=\"line-number\">9</span>      \"type\": \"object\",\n<span class=\"line-number\">10</span>      \"properties\": {\n<span class=\"line-number\">11</span>        \"recommendation\": {\"type\": \"string\"},\n<span class=\"line-number\">12</span>        \"confidence\": {\"type\": \"string\", \"enum\": [\"low\", \"medium\", \"high\"]},\n<span class=\"line-number\">13</span>        \"reasons\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n<span class=\"line-number\">14</span>      },\n<span class=\"line-number\">15</span>      \"required\": [\"recommendation\", \"confidence\", \"reasons\"]\n<span class=\"line-number\">16</span>    }\n<span class=\"line-number\">17</span>  }'</span></code></pre>\n            </div>\n        </div>\n    </div>\n  ","fields":{"slug":"gmpl4ub1a","title":"API 接入","date":"2026-05-25","extractedHeadings":[]},"headings":[{"value":"认证方式","depth":1},{"value":"核心接口","depth":1},{"value":"1. Bank 管理","depth":2},{"value":"2. Retain 存储记忆","depth":2},{"value":"3. Recall 检索记忆","depth":2},{"value":"4. Reflect 智能推理","depth":2},{"value":"5. 查询与管理数据","depth":2},{"value":"请求示例","depth":1}]}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"gmpl4ub1a","prev":{"id":"ampl4uaua","name":"API Key 管理","path":"ampl4uaua","filePath":"Agent 记忆服务/接入方式/API Key 管理.md","seo":null,"parentIds":["fmpl4uat3","impl4uatp"],"parents":[{"id":"fmpl4uat3","documentId":"89600c3e-96c9-4def-b9d8-08dad3b1f7fb","name":"Agent 记忆服务","repoName":"VDB","filePath":"Agent 记忆服务","disabled":false,"path":"fmpl4uat3","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""},{"id":"impl4uatp","documentId":"045943e2-0a50-4db3-9eca-e3aca899aa1e","name":"接入方式","repoName":"VDB","filePath":"Agent 记忆服务/接入方式","disabled":false,"path":"impl4uatp","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""}]},"next":{"id":"cmpl4uayz","name":"接口速查表","path":"cmpl4uayz","filePath":"Agent 记忆服务/接入方式/接口速查表.md","seo":null,"parentIds":["fmpl4uat3","impl4uatp"],"parents":[{"id":"fmpl4uat3","documentId":"89600c3e-96c9-4def-b9d8-08dad3b1f7fb","name":"Agent 记忆服务","repoName":"VDB","filePath":"Agent 记忆服务","disabled":false,"path":"fmpl4uat3","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""},{"id":"impl4uatp","documentId":"045943e2-0a50-4db3-9eca-e3aca899aa1e","name":"接入方式","repoName":"VDB","filePath":"Agent 记忆服务/接入方式","disabled":false,"path":"impl4uatp","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""}]},"parents":[{"id":"fmpl4uat3","documentId":"89600c3e-96c9-4def-b9d8-08dad3b1f7fb","name":"Agent 记忆服务","repoName":"VDB","filePath":"Agent 记忆服务","disabled":false,"path":"fmpl4uat3","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""},{"id":"impl4uatp","documentId":"045943e2-0a50-4db3-9eca-e3aca899aa1e","name":"接入方式","repoName":"VDB","filePath":"Agent 记忆服务/接入方式","disabled":false,"path":"impl4uatp","lastMergeTime":null,"isApiDoc":null,"httpMethod":null,"seo":null,"sourceOrgName":null,"sourceRepoName":null,"sourceDocumentId":""}],"specificSeo":null}}}