Skip to content

Repository files navigation

个人 Prompt 工作流|新人从这里开始

这个项目不替你回答问题。它负责为 Codex 生成三种质量稳定的 Prompt:

当前正式版本:v1.0.0。完整变更见 Release Notes

  1. decompose:把任何问题拆成完整任务。
  2. optimize:为拆出的一个任务单元寻找当前条件下的最优方案。
  3. implement:把最优方案变成可执行的 Python 施工 Prompt。

你不需要先学 Python。最简单的用法是直接运行命令。

第一次使用:只做两步

第一步:建立自己的偏好

python -m prompt_workflow setup

项目会创建 my_preferences.txt。它只是普通文本,每行一条偏好,例如:

默认使用中文回答。
先给结论,再给必要依据。
假设我是新人,操作步骤必须能直接照做。
避免冗余和过度设计。

用任意文本编辑器修改即可。该文件已被 Git 忽略,不会随代码提交给别人。

当前工作区已经为你准备好了 my_preferences.txt,内容来自你在本任务中明确表达的习惯;你可以直接使用,也可以随时改字。

第二步:生成第一个 Prompt

python -m prompt_workflow decompose "我想解决的问题" --output 01_decompose.md

打开 01_decompose.md,把全文交给 Codex。Codex 的回答会包含总任务规格 MASTER_TASK_SPEC 和若干 UNIT_CARD

到这里,你已经成功使用了本项目。其余功能都可以以后再学。

完整三阶段怎么走

1. 拆解问题

python -m prompt_workflow decompose "设计一个适合新人的数据处理工具" --output 01_decompose.md

把文件交给 Codex,并保存它的回答。随后从回答中选择一个要继续处理的 UNIT_CARD

2. 优化一个单元

把第一步回答保存为 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

3. 生成 Python 施工 Prompt

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

它会自动读取我的 Codex 历史吗?

不会静默读取。只有你明确运行 history 时才会访问历史:

python -m prompt_workflow history --max-sessions 50

默认行为:

  • 只读取当前 Windows/macOS/Linux 用户的 ~/.codex/archived_sessions
  • 只转换用户消息和最终回答。
  • 忽略内部推理、命令、工具结果、文件差异和凭据。
  • 生成 history_records.jsonlhistory_extraction_prompts.md
  • 不会自动修改你的个人画像;抽取结果仍需审核和批准。

如果你不知道下一步怎么做,直接在当前 Codex 任务中发送下面这句话:

请读取本项目的 history_records.jsonlhistory_extraction_prompts.md,分批抽取并合并我的稳定偏好。先用普通中文列出“建议新增、建议修改、证据、反例”,不要展示内部推理;等我明确批准后,才修改 my_preferences.txt。不要读取 auth.json,不要长期保存原始聊天。

此后所有 CLI 命令会自动重新读取 my_preferences.txt,不需要重新配置函数。

如需同时包含尚未归档的本地任务:

python -m prompt_workflow history --include-active --max-sessions 50

Codex 官方 App Server 确实提供 thread/listthread/readarchived: true;归档动作会把持久化 JSONL 日志移入归档目录。本项目当前采用显式、只读的本地 JSONL 适配器,因为本机打包版 Codex CLI 不能被普通项目进程可靠启动。参考 Codex App Server 官方说明Projects and chats

三个 Pro 账号怎么处理?

项目不能凭一个账号读取另外两个账号,也不会根据文件内容猜测账号归属。

正确做法是让每个来源拥有明确标签,并分别导入:

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_sessionssessions 的目录;无需也不应该复制 auth.json。来源标签会保留在每条 HistoryRecord 中,之后可以统一合并证据。

如何让这份工作流适合我自己?

推荐顺序:

  1. 先编辑 my_preferences.txt,立即得到可控的个人版本。
  2. 使用 20~30 个代表性任务一段时间。
  3. 再显式导入历史,抽取稳定习惯。
  4. 只批准跨任务稳定、存在证据、没有明显反例的规则。
  5. 每月或偏好明显变化时复审一次,而不是每轮对话都更新。

你当前的个人偏好文件已经包含:中文、先结论、新人友好、最高等级 Pythonic、避免冗余与过度设计、稳定扩展接口、施工中同步进度,以及历史更新必须可审核。

如果我会一点 Python

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 接入、证据补丁和画像持久化仍保留原接口,不影响上述新人路径。

常见问题

提示“未找到 my_preferences.txt”

运行:

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+ 标准库。

About

面向 Codex 的个人化 Prompt 工作流:拆解问题、优化任务单元、生成 Python 实现 Prompt,并以可审计、隐私优先的方式演进个人偏好。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages