问题描述
在使用 Openclaw/Claude Code 调用 OpenAI-Completions 格式 或 Anthropic 格式 接口时,当任务执行时间较长(或经过多轮工具调用后),出现以下现象:
简单说:看起来还在工作,但实际上已经“不知道自己该干什么了”。
复现步骤
-
配置 Openclaw 使用 OpenAI-Completions 格式或 Anthropic 格式 API (或者直接使用Claude Code)
-
启动一个需要多次调用Tool call执行的任务(例如:多步骤信息收集 + 工具调用)
-
观察任务执行过程中的 Agent 行为
-
执行一段时间后,检查 Agent 是否还能正确理解当前任务进度和最终目标
预期行为
Agent 在长时间任务执行中应保持对以下内容的持续记忆:
-
原始任务目标
-
已完成的操作
-
当前所处的步骤
-
接下来需要做什么
实际行为
可能原因猜测
-
上下文窗口溢出:长时间任务积累过多对话历史,导致关键信息(系统提示、任务目标)被截断或权重降低
-
消息结构问题:每次调用没有正确携带之前的对话上下文(messages 数组不完整)
-
工具调用结果未有效保留:工具返回的内容没有正确注入到后续对话中
-
系统提示词被吞掉:多轮对话后系统提示词(system message)没有被持续传递
-
Anthropic API 与 OpenAI API 格式差异:某些字段(如 system 的位置)处理不一致
问题描述
在使用 Openclaw/Claude Code 调用 OpenAI-Completions 格式 或 Anthropic 格式 接口时,当任务执行时间较长(或经过多轮工具调用后),出现以下现象:
外部观察:API 调用过程正常(无报错、有响应)
实际表现:Agent 似乎“忘记”了自己最初的目标
后续行为:无法正确延续任务,出现重复操作、逻辑混乱或无关响应
简单说:看起来还在工作,但实际上已经“不知道自己该干什么了”。
复现步骤
配置 Openclaw 使用 OpenAI-Completions 格式或 Anthropic 格式 API (或者直接使用Claude Code)
启动一个需要多次调用Tool call执行的任务(例如:多步骤信息收集 + 工具调用)
观察任务执行过程中的 Agent 行为
执行一段时间后,检查 Agent 是否还能正确理解当前任务进度和最终目标
预期行为
Agent 在长时间任务执行中应保持对以下内容的持续记忆:
原始任务目标
已完成的操作
当前所处的步骤
接下来需要做什么
实际行为
API 层面无报错,正常返回
Agent 出现“任务迷失”:不知道当前进度、重复之前操作、输出与任务无关的内容
看起来像是上下文窗口没有被正确管理或系统提示词被覆盖/丢失
可能原因猜测
上下文窗口溢出:长时间任务积累过多对话历史,导致关键信息(系统提示、任务目标)被截断或权重降低
消息结构问题:每次调用没有正确携带之前的对话上下文(messages 数组不完整)
工具调用结果未有效保留:工具返回的内容没有正确注入到后续对话中
系统提示词被吞掉:多轮对话后系统提示词(system message)没有被持续传递
Anthropic API 与 OpenAI API 格式差异:某些字段(如 system 的位置)处理不一致