这个项目不替你回答问题。它负责为 Codex 生成三种质量稳定的 Prompt:
当前正式版本:v1.0.0。完整变更见 Release Notes。
decompose:把任何问题拆成完整任务。optimize:为拆出的一个任务单元寻找当前条件下的最优方案。implement:把最优方案变成可执行的 Python 施工 Prompt。
你不需要先学 Python。最简单的用法是直接运行命令。
python -m prompt_workflow setup项目会创建 my_preferences.txt。它只是普通文本,每行一条偏好,例如:
默认使用中文回答。
先给结论,再给必要依据。
假设我是新人,操作步骤必须能直接照做。
避免冗余和过度设计。
用任意文本编辑器修改即可。该文件已被 Git 忽略,不会随代码提交给别人。
当前工作区已经为你准备好了 my_preferences.txt,内容来自你在本任务中明确表达的习惯;你可以直接使用,也可以随时改字。
python -m prompt_workflow decompose "我想解决的问题" --output 01_decompose.md打开 01_decompose.md,把全文交给 Codex。Codex 的回答会包含总任务规格 MASTER_TASK_SPEC 和若干 UNIT_CARD。
到这里,你已经成功使用了本项目。其余功能都可以以后再学。
python -m prompt_workflow decompose "设计一个适合新人的数据处理工具" --output 01_decompose.md把文件交给 Codex,并保存它的回答。随后从回答中选择一个要继续处理的 UNIT_CARD。
把第一步回答保存为 master.md,把选中的任务卡保存为 unit.md,然后运行:
python -m prompt_workflow optimize "@master.md" "@unit.md" --output 02_optimize.md参数前的 @ 表示“读取这个文件”,不用把大段文字塞进命令行。把 02_optimize.md 交给 Codex,保存其 OPTIMAL_UNIT_SPEC 回答为 optimal.md。
python -m prompt_workflow implement "@optimal.md" `
--project-location "." `
--allowed-scope "只修改本项目文件" `
--acceptance-commands "python -B -m unittest -v" `
--output 03_python.md把 03_python.md 交给 Codex,它会得到清晰的范围、接口、测试和验收要求。
随时可以查看命令:
python -m prompt_workflow --help
python -m prompt_workflow decompose --help不会静默读取。只有你明确运行 history 时才会访问历史:
python -m prompt_workflow history --max-sessions 50默认行为:
- 只读取当前 Windows/macOS/Linux 用户的
~/.codex/archived_sessions。 - 只转换用户消息和最终回答。
- 忽略内部推理、命令、工具结果、文件差异和凭据。
- 生成
history_records.jsonl和history_extraction_prompts.md。 - 不会自动修改你的个人画像;抽取结果仍需审核和批准。
如果你不知道下一步怎么做,直接在当前 Codex 任务中发送下面这句话:
请读取本项目的
history_records.jsonl和history_extraction_prompts.md,分批抽取并合并我的稳定偏好。先用普通中文列出“建议新增、建议修改、证据、反例”,不要展示内部推理;等我明确批准后,才修改my_preferences.txt。不要读取auth.json,不要长期保存原始聊天。
此后所有 CLI 命令会自动重新读取 my_preferences.txt,不需要重新配置函数。
如需同时包含尚未归档的本地任务:
python -m prompt_workflow history --include-active --max-sessions 50Codex 官方 App Server 确实提供 thread/list、thread/read 和 archived: true;归档动作会把持久化 JSONL 日志移入归档目录。本项目当前采用显式、只读的本地 JSONL 适配器,因为本机打包版 Codex CLI 不能被普通项目进程可靠启动。参考 Codex App Server 官方说明 和 Projects and chats。
项目不能凭一个账号读取另外两个账号,也不会根据文件内容猜测账号归属。
正确做法是让每个来源拥有明确标签,并分别导入:
python -m prompt_workflow history `
--codex-home "D:\codex-exports\account-a" `
--source "account-a" `
--output "history-account-a.jsonl" `
--prompts-output "prompts-account-a.md"对 B、C 账号重复运行。--codex-home 指向包含 archived_sessions 或 sessions 的目录;无需也不应该复制 auth.json。来源标签会保留在每条 HistoryRecord 中,之后可以统一合并证据。
推荐顺序:
- 先编辑
my_preferences.txt,立即得到可控的个人版本。 - 使用 20~30 个代表性任务一段时间。
- 再显式导入历史,抽取稳定习惯。
- 只批准跨任务稳定、存在证据、没有明显反例的规则。
- 每月或偏好明显变化时复审一次,而不是每轮对话都更新。
你当前的个人偏好文件已经包含:中文、先结论、新人友好、最高等级 Pythonic、避免冗余与过度设计、稳定扩展接口、施工中同步进度,以及历史更新必须可审核。
from prompt_workflow import workflow
me = workflow.personalize_from_file("my_preferences.txt")
stage_1 = me.decompose("我要解决的问题")
stage_2 = me.optimize("MASTER_TASK_SPEC", "UNIT_CARD")
stage_3 = me.implement("OPTIMAL_UNIT_SPEC")也可以不使用文件:
me = workflow.personalize(
"默认使用中文。",
"先给结论。",
"避免过度设计。",
)高级组合、模型 SDK 接入、证据补丁和画像持久化仍保留原接口,不影响上述新人路径。
运行:
python -m prompt_workflow setup不会。项目按字符预算分批生成抽取 Prompt,再通过候选合并完成 map-reduce。
不能。它会先明确目标、约束、证据、备选方案和验收标准,再给出当前信息下可解释、可验证的推荐方案。
python -B -m unittest -v
python -m ruff check _prompt_core.py history_sources.py prompt_workflow.py
python -m mypy --strict _prompt_core.py history_sources.py prompt_workflow.py运行时仅依赖 Python 3.11+ 标准库。