桃子桃子 AI 快讯
返回首页
工具

Codex 迁移网站后留下了什么:本地日志里的提示词与截图

开发者用 OpenAI Codex 把个人网站移植到 Rust,随后在 ~/.codex 中发现了完整提示词、会话 JS…

2026.06.30 · 周二4 分钟阅读评分 40
评分细项加权总分 40
重要性
35
新颖性
42
影响面
30
可信度
60
实质性
45

开发者 William Cotton 在一次实验中,把自己的个人站点 williamcotton.com 交给 OpenAI 的 AI 编程代理 Codex,让其用 Rust 重新实现整个网站。任务完成后,他并没有止步于「跑得起来」,而是转向一个更具「取证」色彩的问题:Codex 在本地究竟留下了哪些可被还原的痕迹。

实验过程:用一句话把站点交给 Codex

Cotton 给 Codex 的提示非常简短:

  • 已在新初始化的 Rust 项目 wmct-copy-codex-rust/src/main.rs 中请 Codex 「复制 williamcotton.com,并完全用 Rust 重建」。
  • Codex 在执行过程中反复启动 Chrome 抓取本地副本与线上站点,并据此生成代码。
  • 第一版输出把所有文章都硬编码进了 main.rs,并未按预期接入 Contentful;Cotton 再次提示纠正后,Codex 又「思考」了一段时间,最终完成可在 http://localhost:1234 运行的版本。

代码全部集中在一个 main.rs 文件中,包含对 Contentful 富文本 JSON 树的渲染函数,并集成了 HTMX 框架与测试用例。

取证发现:~/.codex 里的提示词与截图

Cotton 随后用 grep~/.codex 目录中搜索自己最初的指令字符串,定位到多个本地存储位置:

  • sessions/2026/06/26/rollout-2026-06-26T07-04-14-*.jsonl:包含完整的 event_msgresponse_item 等记录,带有 turn_idsession_id,文件大小约 146 万字符,477 行。
  • history.jsonl:以纯文本形式保存了该会话的用户消息历史。
  • state_5.sqlitestate_5.sqlite-wallogs_2.sqlite:SQLite 数据库中也能匹配到同一段提示,表明 Codex 将对话与状态同时落库和落盘。
  • 同一 JSONL 文件中出现大量 data:image/png;base64 字串,说明 Codex 在执行过程中捕获并存储了图像输入,这些图像理论上可以被还原还原为开发者当时浏览页面的截图。

意义与待解问题

这一「取证」路径揭示的事实并不复杂:作为本地 CLI/IDE 代理,Codex 会把对话内容、会话状态乃至屏幕图像持久化在用户机器上。但它对关注隐私与数据合规的开发者提出了几项直观的提醒:

  • 会话 JSONL 与 SQLite 库以明文或可解码的形式存放提示词与截图,并非默认加密。
  • 由于 session_id 同时出现在文件名与 history.jsonl 中,外部只要获得磁盘镜像,就有可能重建完整的 Codex 对话链路。
  • 文章在「更细致地查看 rollout 文件」处截断,后续是否进一步还原出截图内容、是否给出清理建议尚未公布。

对正在评估 Codex 类 AI 编程代理在团队内部署安全边界的从业者而言,这一案例提供了具体的本地落盘路径示例,但能否代表 OpenAI 全产品线的数据处理策略,仍需 OpenAI 官方进一步说明。

信源