必须按role+content标注、时间序排列、system仅置首;工具调用需保留完整JSON,结果作空content user消息嵌tool_responses;禁注释、禁压缩、禁非法UTF-8。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 Muse Wonder API 中正确传入多轮对话记录,必须让模型识别出历史交互的时序结构与角色归属,否则 Active Memory 无法激活跨会话上下文携带能力,系统会当作全新单轮请求处理。
构造符合 Active Memory 要求的 messages 数组
第一步:用 role + content 键值对明确标注每条消息的发送方,仅支持 "user"、"assistant"、"system" 三种 role 值;【禁止混用 "human"/"bot"/"ai" 等非标准字段】
第二步:按时间顺序从旧到新排列所有消息,最老的一条放在数组最前面,最新提问放在最后;顺序错乱会导致 Active Focus 在检索记忆时取到过期或无关上下文。
第三步:system 消息只能出现在数组开头,且最多出现一次;它用于设定全局约束(如“你是一名持证税务顾问”),不能穿插在 user/assistant 消息中间——否则 Muse Wonder 会忽略后续所有 system 提示。
处理带工具调用的历史记录
方法一:若某轮 assistant 回复中包含 tool_calls 字段(例如调用了 get_weather 或 search_db),必须原样保留整个 JSON 结构,包括 id、type、function.name、function.arguments;【删掉 tool_calls 或只传 function.name 会导致 Active Focus 丢失执行路径记忆】
方法二:对应工具返回结果必须作为一条新的 user 消息传入,role 设为 "user",content 设为空字符串,tool_call_id 和 content 字段需完整嵌套在 tool_responses 数组中——这是 Muse Wonder Full 解析 SWE-Marathon 类长程任务的关键格式。
避免触发 memory 隔离的敏感操作
不要在 messages 中插入注释性文字,比如在某条 user 消息末尾加“(这是上周问的)”;Muse Wonder 的 MemoryBench 测试表明,这类人工标注会干扰相关性检索模型,导致 Active Memory 主动跳过该条目。
不要把多轮对话强行压缩成一段长文本再塞进单个 content 字段;这会让模型失去角色切换感知,Active Focus 将无法判断哪部分是用户确认、哪部分是助手提议、哪部分是用户否决——三者对任务推进权重完全不同。
确保所有 message 的 content 值都是合法 UTF-8 字符串,含 \0 或未闭合 Unicode surrogate pair 会导致整条请求被静默截断,API 返回 200 但 response 内容为空。

















