[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"docs-page-cn-/cn/usecase/blog/memos_async_memory_write_verification":3,"surround-cn-/cn/usecase/blog/memos_async_memory_write_verification":162},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":6,"description":148,"extension":156,"lead":6,"links":6,"meta":157,"navigation":6,"path":158,"seo":159,"stem":160,"__hash__":161},"docs/cn/usecase/blog/memos_async_memory_write_verification.md","MemOS 异步写入如何验收？从 task_id 查到下一次回答",null,{"type":8,"value":9,"toc":147},"minimark",[10,18,21,24,32,35,39,42,45,48,51,54,56,65,72,87,90,97,100,102,105,108,111,114,117,125,127,130,133,136,144],[11,12,13],"p",{},[14,15],"img",{"alt":16,"src":17},"MemOS 异步写入验收","https://cdn.memtensor.com.cn/img/1793872182515_ra9zlv_compressed.png",[11,19,20],{},"用户刚把酒店预算从每晚 1200 元改成 800 元，下一句就问“帮我重新推荐”。好的体验，是这次推荐立即采用新预算，用户不必等后台整理，也不必把更正再说一次。",[11,22,23],{},"要做到这一点，可以把当前会话中的确认信息与长期记忆衔接起来：先让新预算进入下一轮上下文，同时将这次更正提交给 MemOS。后台处理完成后，后续会话可以检索并使用更新后的记忆。",[11,25,26,31],{},[27,28,30],"a",{"href":29},"/cn/memos_cloud/features/async_mode/","MemOS Cloud 的异步模式","支持在后台处理写入的消息，并提供任务状态查询。应用可以一边继续回应用户，一边跟进记忆处理进度。",[33,34],"br",{},[36,37,38],"h2",{"id":38},"当前更正先进入下一轮可用信息",[11,40,41],{},"收到明确更正时，先在会话状态中保存用户、项目、预算值和确认顺序。下一轮生成推荐时，将这项当前约束放入上下文，再补充检索到的历史偏好。",[11,43,44],{},"如果旧记忆仍写着 1200 元，当前已经确认的 800 元应当拥有更高优先级。这样，后台处理所需的时间就不会变成用户重复解释的负担。",[11,46,47],{},"讨论与决定也要分开。“800 元会不会选择太少”是在探讨，“这次就按 800 元”才表达确认。可以为前者保留对话，为后者更新当前约束，避免把每句带金额的话都当成新的预算。",[11,49,50],{},"当前会话提供最近确认的信息，长期记忆支持跨会话延续。保存时还要带上适用范围：用户说“这次旅行按每晚 800 元”，应关联到这次旅行；如果用户明确表示以后订酒店都希望控制在这个范围，才可以作为更长期的偏好使用。",[11,52,53],{},"更正也可以只覆盖一个字段。预算改成 800 元之后，目的地和交通偏好仍然有效，将它们继续保留，比整份抛弃旧上下文更能维持任务的连续性。",[33,55],{},[36,57,59,60,64],{"id":58},"通过-task_id-跟进长期记忆处理","通过 ",[61,62,63],"code",{},"task_id"," 跟进长期记忆处理",[11,66,67,68,71],{},"在 MemOS Cloud 中，",[27,69,70],{"href":29},"添加消息默认采用异步模式","。当前消息先经过初步处理，供后续检索；更细的记忆整理继续在后台进行。因此，消息开始可被检索，与后台任务全部完成，是两个不同的时间点。",[11,73,74,75,77,78,82,83,86],{},"应用可以保留返回的 ",[61,76,63],{},"，通过 ",[27,79,81],{"href":80},"/cn/api_docs/message/get_status/","get/status"," 跟进处理状态。任务完成后，",[61,84,85],{},"memory_views"," 会汇总新增、更新和删除等变化，并按记忆类别提供相关 ID。应用可以据此进一步查看受影响的记忆，核对预算是否已经更新。",[11,88,89],{},"当任务仍在处理中，也可以检查新信息是否已经进入检索，无需为每一轮对话固定等待全部精加工结束。对于依赖完整处理结果的步骤，再等待对应任务完成。",[11,91,92,93,96],{},"如果某个操作需要在接口返回前等记忆处理完成，也可以在添加消息时选择",[27,94,95],{"href":29},"同步模式","；需要立即回应用户的场景，则可以继续使用当前会话中已确认的信息。",[11,98,99],{},"任务标识应与预算更正的事件关联。一项业务更正可以有进度查询和后续读取，但这些请求仍然围绕同一个变化，便于找到失败或延迟发生的位置。",[33,101],{},[36,103,104],{"id":104},"让新旧信息按确认顺序接续",[11,106,107],{},"用户可能先将预算改成 1000 元，随后又改成 800 元。后台处理若耗时不同，完成先后不一定与用户确认的顺序相同。",[11,109,110],{},"会话状态应保留最后一次已确认修改。对于同一旅行预算的连续更正，应用可以按确认顺序提交处理，或在相关任务完成后重新核对最新值。",[11,112,113],{},"例如，用户先确认 1000 元、随后改成 800 元时，下一轮应继续使用 800 元。如果较早提交的任务晚于后一次任务完成，应用还需要检查长期记忆是否仍采用最新预算；必要时重新提交最新更正。确认相关处理已经接续后，再移除临时记录。",[11,115,116],{},"如果写入失败，保留当前更正并安排恢复，不要因为一次后台任务失败，就让下一轮回到旧预算。跨会话使用时，也应保存未完成的更新，或者在继续任务前取得它的最终结果。",[11,118,119,120,124],{},"写入和检索时，需要保持",[27,121,123],{"href":122},"/cn/memos_cloud/introduction/isolation_filters/","项目和用户范围","一致；如果应用按 Agent 组织或过滤记忆，也要让相关设置与使用场景对应。会话标识帮助关联当前对话，同一用户标识则有助于在不同入口继续使用该用户的记忆。",[33,126],{},[36,128,129],{"id":129},"用四次提问验收一项更正",[11,131,132],{},"先确认原预算，再明确改成 800 元，随后立刻请求推荐，最后换一个会话继续这次旅行。观察推荐是否采用新金额，追问原计划时能否找到之前的信息，以及跨会话是否继续使用当前预算。",[11,134,135],{},"还可以连续修改两次，例如先改成 1000 元、再改成 800 元，检查后台任务完成后，后续推荐是否仍以最后确认的金额为准。",[11,137,138,139,143],{},"若结果不符，可以沿",[27,140,142],{"href":141},"/cn/memos_cloud/mem_operations/search_memory/","检索内容","、最终模型输入和答案逐步定位。新记录已经找到却仍采用旧预算时，优先检查旧摘要是否覆盖了当前约束；检索尚未取得新信息时，则检查处理进度与范围。",[11,145,146],{},"这套设计让异步处理保持效率，也让用户的明确更正在下一次交互中起作用。用户感受到的“记住了”，最终体现在建议真的随他的决定而改变。",{"title":148,"searchDepth":149,"depth":149,"links":150},"",2,[151,152,154,155],{"id":38,"depth":149,"text":38},{"id":58,"depth":149,"text":153},"通过 task_id 跟进长期记忆处理",{"id":104,"depth":149,"text":104},{"id":129,"depth":149,"text":129},"md",{},"/cn/usecase/blog/memos_async_memory_write_verification",{"title":5,"description":148},"cn/usecase/blog/memos_async_memory_write_verification","3sJkB8tKniIQ33x1PYKf3qCWnDEC4f0NoeSlWEfFYUE",[163,170],{"title":164,"path":165,"stem":166,"framework":6,"module":6,"class":167,"target":-1,"active":168,"defaultOpen":169,"children":-1,"description":-1},"MemT-1.0 与 MemOS 如何分工？从一次编码任务开始选型","/cn/usecase/blog/memt_memos_agent_memory","usecase/blog/memt_memos_agent_memory",[],false,true,{"title":171,"path":172,"stem":173,"framework":6,"module":6,"class":174,"target":-1,"active":168,"defaultOpen":169,"children":-1,"description":-1},"权限撤了，Agent 为什么还记得那份报价？","/cn/usecase/blog/revoked_access_agent_memory","usecase/blog/revoked_access_agent_memory",[],1793874796140]