Skip to content
v1.0.0

API站接口汇总-用于对外的接口文档


Default


回忆API

POST
/v1/recall

此接口用于根据文本内容(如对话内容)进行回忆

并发消耗:2点

📌注意

人类的回忆并不是简单地“查找一条记录”,而是一次立体的认知重构过程:它既包含常识性的知识调用,也依赖相关历史经历的回溯,并伴随着基于实体关系的自然联想。更进一步,回忆还会结合时间线索,对已经错误或过时的记忆进行修正,将新的认知与旧的认知以可溯源的方式连接起来,同时不同记忆在大脑中的“印象深浅”也会随着时间发生变化。

MemnetAI 在回忆设计上充分模拟了这一过程,从知识、历史、关系、时间到记忆强度等多个维度协同工作,使回忆不再是静态的结果返回,而是一个动态、演化、接近人类认知方式的思考过程,从而实现真正类人的回忆体验。

基础介绍

  1. 回忆过程需要依托一段文本内容作为检索依据,一般使用当前对话上下文中用户最新的发言文本内容作为回忆输入,以获得更准确的回忆结果
  2. character 用于标识当前是谁在与 AI 进行对话,明确区分不同的说话者有助于 AI 在回忆时更好地理解语境,并回忆起更贴合特定发言人的回忆内容。一般场景下建议显式指定该参数
  3. 人类在回忆时,既可能进行快速、浅层的联想,也可能展开更深入的思考式回忆。回忆的深入程度往往直接影响能够想到的相关内容范围。为此,系统提供了 recallDeep 参数,用于控制回忆的深度。在大多数场景下,建议将该参数设置为 1,以获取更全面、更丰富的回忆结果,从而提升整体效果
  4. 人类在回忆到一些过时或错误的记忆时,往往会立马想到与之关联的正确记忆,isIncludeLinkedNewMemoriesFromInvalid参数正是为此而存在的,如果开启,将会把非有效性记忆关联的新记忆也加入到上下文当中;需要注意,就算不开启,非有效性记忆依然不会导致幻觉问题,因为记忆变动日志中也记录了该记忆的变动过程,上下文信息是完整且最新的
  5. 联想性思考能力与常识记忆能力均支持按需开启或关闭。默认情况下,建议开启这两项能力,以便在回忆过程中激活更丰富的语义联想与背景知识,从而获得更加完整、自然的回忆效果
  6. isUsingCommonSenseDatabase是常识库的总开关,如果设为false,将不会使用任何的常识库,因此需要注意
  7. 常识库分为全局常识库,记忆体常识库和仅本次回忆使用的常识库,全局常识库和记忆体常识库需在后台站配置好之后才能使用,如果想动态引用不同的常识库,请在每次回忆时动态配置commonSenseDatabaseIdList(仅本次回忆使用的常识库)参数
  8. 回忆的内容往往用于增强大模型的对话上下文,通常以 System 提示词的形式注入。为降低接入成本,接口返回中已提供封装好的 memoryPrompt,可直接拼接至现有的 System 提示词中使用,无需额外处理。当然,如果你有更加复杂的需求,也可以将isReturningDetailedMemoryInfo参数设置为1,以获取极为完整的回忆信息

注意事项

  1. 在将回忆内容注入 System 提示词后,建议在用户最新一轮对话的 content 文本末尾进行拼接(请严格遵循系统提示词 / System 提示词的使用规范),以进一步强化模型对系统级指令与回忆信息的关注度,从而提升整体对话效果
  2. 就像人类一样,记忆并非一成不变。被反复提及或多次回忆的内容,会在记忆体中留下更深刻的印象;而只出现过一次、此后未再被触及的内容,会随着时间流逝逐渐变得模糊,也就越来越不容易被回忆起来,其遗忘规律大致拟合艾宾浩斯曲线
  3. 记忆是拥有时间概念的,例如当你提及“昨晚“时,昨晚这段时间的记忆就更容易被回忆起来
  4. 联想性思考很多时候是创造力的根源,对话未提及的隐性实体关系也有可能出现在联想性思考的结果当中,这是正常现象

最佳实践

在用户与大模型进行对话的过程中,每当用户发送新的消息时,应首先使用该消息内容触发回忆流程,获取对应的 memoryPrompt(回忆提示词)。
随后,将返回的 memoryPrompt 直接写入并覆盖当前对话上下文中的 System 提示词,用于对整体上下文进行增强。同时,在用户本次消息的 content 文本末尾临时拼接一份增强提示词(请严格遵循 System 提示词的使用规范)。
在完成上述增强后,将更新后的上下文提交给大模型进行推理与生成,此时对话过程即运行于长期记忆增强模式之下。
该流程构成了支持长期记忆的最佳对话生命周期。需要注意的是,拼接在用户最新消息末尾的增强提示词仅在当前轮对话中生效,并不会被永久写入用户原始输入内容,在下一轮对话中会重新根据最新输入动态生成并替换。

Parameters

Header Parameters

Authorization

令牌 api-key

Typestring
Example"Token <api-key>"

Request Body

application/json
JSON
{
"memoryAgentName": "string",
"query": "string",
"character": "string",
"recallDeep": 1,
"isIncludeLinkedNewMemoriesFromInvalid": 0,
"isUsingAssociativeThinking": 1,
"isUsingCommonSenseDatabase": 1,
"isUsingGlobalCommonSenseDatabase": 1,
"isUsingMemoryAgentCommonSenseDatabase": 1,
"commonSenseDatabaseIdList": [
"string"
],
"isReturningDetailedMemoryInfo": 0
}

Responses

application/json
JSON
{
"code": "string",
"msg": "string",
"data": {
"memoryPrompt": "string",
"memorySummaryList": [
{
"memorySummaryId": "string",
"memorySummaryText": "string",
"maxImpression": 0,
"charactersInMemory": "string",
"memnetaiContextId": "string",
"contextType": 0,
"memoryStatus": 0,
"linkedNewMemorySummaryId": "string",
"memoryChangeLog": "string",
"metaData": "string",
"score": 0,
"createTime": "string",
"updateTime": "string"
}
],
"associativeThinkingList": [
{
"nodes": [
{
"id": "string",
"name": "string"
}
],
"links": [
{
"sourceNodeId": "string",
"sourceNodeName": "string",
"targetNodeId": "string",
"targetNodeName": "string",
"distance": 0,
"relation": [
{
"relation": "string",
"maxImpression": 0
}
]
}
]
}
],
"commonSenseList": [
{
"id": 0,
"memnetaiCommonSenseDatabaseName": "string",
"text": "string",
"createTime": "string",
"updateTime": "string"
}
],
"usage": {
"consumedPoints": "string",
"consumedMemoryCount": "string",
"consumedRecallCount": "string",
"consumedThinkingCount": "string",
"consumedDreamCount": "string",
"consumedCommonMemoryWords": "string",
"hasRemainingQuota": true
}
}
}

Playground

Headers
Body

Samples

cURL
JavaScript
PHP
Python

Powered by VitePress OpenAPI