回复与最终答案
最终助手文本如何到达源对话,以及当 Codex 回合在没有最终文本的情况下结束时会发生什么。本文是 Codex harness 运行时 指南的一部分;各章节的迁移去向 列出了每个章节。
可见回复与心跳¶
通过 Codex harness 进行的直接/源聊天回合默认会对内部 WebChat 界面采用自动最终助手文本投递,这与 Pi harness 契约一致:代理正常回复,OpenClaw 将最终文本发布到源对话。设置 messages.visibleReplies: "message_tool" 可将最终助手文本保持为私有,除非代理调用 message(action="send")。
评论遵循对话的进度设置,可能会被隐藏或是临时的。当工作继续进行时若有问题到达,代理会被指示使用 message(action="send", final=false) 发送其答案,并继续执行任务。最终响应涵盖尚未交付的答案和结果。这不会启用评论功能,也不会更改流式设置。
显式标记为异步投递的原生 Codex 消息使用独立的投递意图。它们与可选的进度信息以及最终答案分开投递,即使在禁用块式流式传输时也是如此。
Codex 心跳回合默认在可搜索的 OpenClaw 工具目录中获得 heartbeat_respond,以便代理记录此次唤醒是应保持安静还是发送通知。心跳回合使用与普通聊天回合相同的 Codex Default 协作模式。当存在时,心跳监视器的 cron 暂存内容会被追加到计划的心跳用户消息中。
远程工作区中的附件¶
使用 appServer.remoteWorkspaceRoot 时,最终回复和异步回复可以使用 MEDIA:./report.pdf 或远程工作区内的绝对路径。在释放应用服务器连接之前,Codex 插件通过受限的 command/exec 请求读取附件。宿主的 回复媒体能力 应用读取策略,并暂存字节以供投递。原始回复仍保留在记录中;Gateway 工作区副本不会用作回退方案。
工具工作完成后的最终答案¶
对于完成工具工作却没有可见答案的普通宿主认证 Codex 回合,OpenClaw 可以在私有临时主目录中请求一个受限的最终答案回合。它使用已完成线程的模型选择以及原始宿主认证路由或已解析的配置文件,而不是从外部请求元数据中选择模型。现有的环境、动态工具、MCP 和原生钩子限制仍然生效。已完成的动作是记录中的证据,而不是要重放的指令。保留原生模型本身并不会禁用宿主认证的最终化流程。
当隐藏的后台任务完成消息属于模型上下文的一部分时,它们仍然有资格进行这种恢复。宿主会在已接纳的提示词上记录它们的原生回合身份,同时在聊天中保持它们为隐藏状态。原生记录镜像会复用该提示词作为证据;它无法重新创建一个已经消失的已接纳提示词。被显式排除在模型上下文之外的消息仍位于原生提示词注解之外。
恢复流程会先为完整的当前回合预留其现有限制,然后保留能容纳的最近的完整早期对话交换。较早的对话交换可能会被省略,包括整个对话交换过大的情况。当空间允许时,通知会指出缺失的历史记录;最终化器总是被指示要表明对缺失事实的不确定性。超过限制的当前证据、无效的工具配对或不支持的内容仍会导致恢复流程不可用。现有对话历史保持完整,已完成的动作绝不会重复执行。
通过 Codex Sessions 创建的 Chat 则不同:其私有监督连接拥有原生认证。标准版 Codex 没有暴露通用的、无需工具的摘要操作来保留该连接的账户。OpenClaw 会将此最终化上下文标记为不可用,而不是选择宿主凭据、复制原生凭据或启动另一个原生回合。如果必须给出最终回复,宿主会投递其现有的回退消息:
工具运行已结束,但没有生成最终摘要。我没有重复任何已完成的动作。
原始的已完成结果、原生绑定和工具回执保持完整。返回最终答案的原生回合会正常投递。普通的 homeScope: "user" 选择加入机制保留其文档中记载的私有宿主认证最终化流程;参见 认证与环境隔离。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw