Codex 长时间使用一个对话框会导致Codex 未响应发生,想问一下老友们如何在创建新的聊天框的同时尽可能让他记住我们都聊过什么呢?

Codex 长时间使用一个对话框会导致Codex 未响应发生,想问一下老友们如何在创建新的聊天框的同时尽可能让他记住我们都聊过什么呢?

就这末一会功夫,codex又死机了

首先一个项目是需要有个AGENTS.md 来放项目规则和常用命令的,然后如果你执行一个项目下面的需求的时候 我一般会生成一个docs/plan.md 来放当前任务进度、关键决策和下一步等等。比如我每完成一个阶段,或者做了一些关键决策,或者遇到了阻塞准备暂停然后换新聊天前,我都会让 codex 去更新一次plan, 然后新开聊天时让它先读 AGENTS.md 和 plan.md 再继续。

第二种方式就是我需要换新聊天的时候我就让codex先总结下我们当前聊天的进度计划和下一步 总结好后 我会带着发给新的聊天继续讨论。

我写了一个skills你看看能不能用上然后继续完善符合你的要求:
已实现功能

  1. 生成项目交接
  • 总结当前项目背景、任务目标、已完成内容、待完成内容、关键文件、注意事项。
  • 生成给新 Codex 对话直接复制使用的接续提示词。
  • 默认中文输出。
  • 不假设新对话能读取旧聊天历史。
  1. 恢复已有交接
  • 优先读取当前项目:

.codex/handoffs/latest.md

  • 必要时读取:

.codex/handoffs/index.md

  • 检查当前目录、git 状态、关键文件是否仍与交接文件一致。
  • 输出恢复计划和需要检查的文件清单。
  1. 更新已有交接
  • 在已有 handoff 基础上刷新任务状态。
  • 保留历史时间戳文件,不覆盖旧记录。
  • 更新 latest.md 和 index.md。
  1. 交接文件管理
  • 当前项目下生成:

.codex/handoffs/ ├── index.md ├── latest.md └── YYYYMMDD-HHMMSS-local-project-slug-task-slug-uniqueid.md

  • 时间戳文件是 source of truth,不覆盖。
  • latest.md 指向最新交接。
  • index.md 记录所有交接文件。
  1. 文件命名规则
  • 格式:

YYYYMMDD-HHMMSS-local-project-slug-task-slug-uniqueid.md

  • project-slug 来源优先级:用户明确项目名、git 仓库名、包名、项目根目录名、unknown-project。
  • task-slug 来源优先级:当前任务目标、主要模块/产物、已有文件名 slug、general-handoff。
  • slug 是文件名标签,不是完整总结。
  1. 并发安全
  • 多个 Codex 对话同时写入时,使用唯一 ID 降低文件名冲突。
  • 更新共享文件前使用:

.codex/handoffs/.handoff.lock

  • 拿锁后重新读取 index.md 和 latest.md,再合并更新。
  • 如果锁不可用,仍保留时间戳 handoff 文件,并提示需要人工检查共享文件。
  1. 质量自检
  • 检查 handoff 是否自包含。
  • 检查事实、假设、不确定性是否区分。
  • 检查路径是否具体。
  • 检查命令、测试、验证状态是否记录。
  • 检查任务 slug 是否准确反映正文。
  • 检查是否避免相对时间表达。
  1. 特殊情况处理
  • 没有 handoff:从当前工作区和用户上下文生成新交接。
  • 多个 handoff:用 index.md 和任务目标选择。
  • handoff 过期:报告 drift 风险。
  • 非 git 仓库:明确写 非 git 仓库。
  • 跨项目任务:每个项目单独生成 handoff。
  • 不可逆或长时间任务:先给计划并请求确认。

触发条件

语义触发:

  • 用户想总结当前项目。

  • 用户准备开启新 Codex 对话继续任务。

  • 用户想恢复上次任务。

  • 用户想根据交接文件继续。

  • 用户想生成接续提示词。

  • 用户想更新已有项目交接。
    project-handoff-skill-20260519-220742.zip (7.4 KB)

  • 用户想跨对话保存当前任务状态。

可是每次运行的时候提示词都要在后面写上更新plan.md 和 agents.md 吗?第二种方法用过,但是总是会遗漏一些什么,害怕会产生幻觉之类的 :sob:

好的好的我去看一下这个skill

佬友,如何把这个skill导入到Codex中,谢谢了

下下来放桌面然后问他怎么导入或者放入它自己放skills的默认文件夹,有问题就问它让它实现就行,我记得codex的默认skills好像放在c盘下codex的某个文件夹,你让他找

不用 AGENTS.md 是长期记忆类型的一般你有什么需要特定的规则记忆要求 才需要去更新的, 而plan.md也不是每次 一般都是你当前任务开始的时候 阶段完成的时候 或者关键的需求的时候 才需要去同步下就好了,如果你不想这么麻烦你可以把规则写进 AGENTS.md 里面 ,比如要求遇到长任务推进时,请在阶段完成、阻塞或会话结束前更新 docs/plan.md,这样之后不用每次提示了,codex会按照这个习惯执行的。如果你不放心可以在最后打算新开的时候让codex检查下当前聊天的关键部分是否都同步到plan里面了。

codex app的设置里面,不是可以开启记忆吗,我看它的说明,就是为这种场景准备的

C:\Users\用户名.codex\skills 应该就是这个文件夹,然后你就能在codex /这个skills,反正你让codex自己弄就行

有时候只要一个窗口的记忆,它那个记忆是疯狂跨对话,如果你不是一直在进行同一个任务会很乱,所以我一般关了hhh

好的,知道了,谢谢佬友,十分感谢

codex比我有用,多问问他哈哈哈

明白了,我去尝试尝试,感觉第一种挺稳的

直接按CTRL+C 退出,然后它下面会提示你会话的ID,接着再用 codex resume 命令接着上一次的会话ID进去。命令格式:
codex resume 029e4719-8893-7422-9955-36eacb73c746 --sandbox danger-full-access -a never

–sandbox danger-full-access 这个参数赋予codex 全权限,-a never这个参数让它每次执行命令的时候不要提问。不需要可以忽略。

如果CTRL+C退出的时候没有显示会话ID,那么就在启动codex后输入 “/resume” 命令去恢复历史会话。

对于已经太长了的历史会话,需要重新开个新会话,可以让它将对话做个摘要文档,然后让它给出下一次从摘要文档熟悉项目进入的提示词。