Codex 客户端使用小技巧
Codex 不适合只用一句“帮我写代码”来使用。它更像一个可以读代码、改代码、运行测试、生成文档的工程助手。官方介绍中,Codex App 支持项目线程、工作树、Git 功能和并行任务,Codex Web 也可以在云端读取、编辑和运行代码,适合处理较完整的开发任务。
1. 不要一上来就让它“写几千行代码”
很多人用 Codex 的第一个错误是直接输入:
帮我写一个完整系统,代码越多越好。
这样生成的代码通常会很散,甚至跑不起来。更好的方式是先让 Codex 做 项目设计:
请先不要写代码。请根据我的需求,设计一个 Python 工程项目结构,包括模块划分、配置文件、数据流、核心类、依赖库、运行入口、测试方案和文档目录。设计完成后等待我确认。
确认后再让它分阶段写代码:
按照刚才的项目结构,先实现 config、models、logger、utils 四个基础模块。
要求:
1. 代码必须可运行;
2. 每个模块要有类型注解;
3. 每个函数要有简短注释;
4. 不要实现业务逻辑,先完成基础框架。
这样生成的项目更稳。
2. 先建一个 AGENTS.md,约束 Codex 的行为
Codex 很适合读取项目中的说明文件。你可以在项目根目录放一个 AGENTS.md,告诉它代码风格、禁止事项、运行方式和测试要求。Codex CLI 是本地运行的编码智能体,官方 GitHub 页面也强调它可以在本地项目中工作;桌面版或 App 适合用项目和线程组织开发任务。
示例:
# AGENTS.md
## 项目目标
本项目仅用于授权实验环境下的路由器弱口令安全评估,不得用于未授权网络扫描。
## 技术栈
- Python 3.10+
- typer / argparse
- pydantic
- jinja2
- pytest
- requests
- paramiko
## 编码规范
- 所有核心函数必须包含类型注解
- 不允许把所有代码写在一个 main.py 中
- 每个模块必须职责单一
- 修改代码后必须更新 README.md
- 新增功能后必须补充 pytest 测试
## 安全边界
- 禁止默认扫描公网 IP
- 禁止加入绕过验证码、绕过锁定、隐蔽攻击功能
- 所有扫描必须要求用户显式确认授权
这类文件很重要,因为它能让 Codex 每次改代码时都遵守同一套规则。
3. 用“任务拆分法”,不要一次性生成整个系统
例如你的项目可以拆成这些任务:
任务1:生成项目结构和依赖文件
任务2:实现配置读取模块
任务3:实现资产发现模块
任务4:实现设备指纹识别模块
任务5:实现智能字典加载模块
任务6:实现协议适配器接口
任务7:实现 SSH/Telnet/HTTP 登录检测的抽象层
任务8:实现低干扰调度和指数退避
任务9:实现只读权限验证证据链
任务10:实现 HTML/CSV/JSON 报告生成
任务11:补充 pytest 单元测试
任务12:更新 README 和用户说明文档
每次只让 Codex 做一个任务,质量会明显高很多。
4. 每次让 Codex 修改前,先让它“读项目”
在 Codex 客户端里,不要直接说“改代码”。可以先输入:
请先阅读当前项目结构,理解每个文件的作用。
暂时不要修改代码。
阅读后请告诉我:
1. 当前项目有哪些模块;
2. 每个模块的职责;
3. 目前缺少哪些功能;
4. 下一步你建议优先实现什么。
这样可以避免它误删文件、重复造轮子,或者不知道你已有代码。
5. 要求它“先给计划,再改代码”
推荐固定使用这个模板:
请完成以下任务:实现 HTML 报告生成模块。
修改前请先输出开发计划,包括:
1. 需要新增或修改哪些文件;
2. 每个文件修改什么;
3. 是否需要新增依赖;
4. 如何验证功能是否成功。
我确认后,你再开始修改代码。
这样你能提前发现它的方向是否跑偏。
6. 用验收标准约束结果
Codex 很吃“验收标准”。比如不要只说“生成报告功能”,而要这样写:
请实现报告生成模块,验收标准如下:
1. 输入检测结果列表;
2. 输出 report.html、report.json、report.csv 三种文件;
3. HTML 报告必须包含:
- 检测时间
- 扫描目标
- 设备总数
- 风险设备数
- 每台设备的 IP、品牌、协议、端口、状态、证据摘要
4. 风险设备需要在 HTML 中高亮显示;
5. 必须提供 pytest 测试;
6. 必须更新 README 中的使用说明。
Codex 看到这种标准,会更容易生成完整功能,而不是随便写个函数。
7. 让它每次改完都运行测试
可以这样要求:
修改完成后,请执行以下验证:
1. python -m pytest
2. python -m compileall .
3. python main.py --help
如果测试失败,请不要解释太多,直接定位错误并修复。
这样比你自己一遍遍复制错误信息更高效。
8. 用 Git 配合 Codex,方便回退
Codex App 支持 Git 和工作树相关能力,适合同时跑多个开发线程,例如一个线程做报告模块,一个线程做测试模块,一个线程做文档更新。
实际使用时可以这样做:
git init
git add .
git commit -m "initial project structure"
每完成一个模块就提交一次:
git add .
git commit -m "add report generator"
如果 Codex 改坏了,直接回退:
git restore .
9. 不要只让它写代码,也要让它更新论文文档
你的项目不只是写程序,还要让论文第5章、第6章更有深度。可以让 Codex 在写完模块后同步生成论文说明:
请根据刚刚实现的代码,更新 docs/chapter5_implementation.md。
要求:
1. 用本科毕业设计论文风格;
2. 说明模块功能、设计思路、核心类、核心流程;
3. 不要贴完整代码,只展示关键代码片段;
4. 语言要正式、清晰;
5. 最后补充“本模块小结”。
测试部分可以这样写:
请根据当前项目的 pytest 测试和 sample_data,生成第6章“系统测试与分析”的写作素材。
包括:
1. 测试目的;
2. 测试环境;
3. 功能测试;
4. 性能测试;
5. 测试结果表格;
6. 测试总结。
10. 出错时,不要说“你错了”,要给它错误日志
Codex 修 Bug 最需要的是错误信息。你可以这样输入:
运行时报错如下,请定位原因并修复。
要求:
1. 先解释错误原因;
2. 再说明需要修改哪些文件;
3. 最后直接修复代码并运行测试。
错误日志:
粘贴完整报错
不要只说“运行不了”,这样它只能猜。
11. 复杂功能要让它先写 Demo,再并入主项目
比如你要做指纹识别、报告生成、任务调度,可以先让 Codex 独立实现一个最小可运行 Demo:
请先写一个最小可运行 Demo,用假数据模拟设备扫描结果,然后生成 HTML 报告。
确认 Demo 能运行后,再把它整合进正式项目结构。
这样比直接改主项目安全。
12. 针对毕业设计项目的推荐 Codex 指令
你可以直接复制下面这段给 Codex:
你现在是我的 Python 工程开发助手。请帮助我开发一个仅用于授权实验环境的路由器弱口令安全评估系统。
要求:
1. 项目必须采用工程化目录结构,不能只写一个 main.py;
2. 包含资产发现、设备指纹识别、智能字典加载、协议适配器、低干扰任务调度、只读权限验证、报告生成、日志记录和测试模块;
3. 所有扫描行为必须限定在用户显式指定的授权网段;
4. 不允许加入公网批量扫描、绕过验证码、绕过锁定、防检测规避等攻击性功能;
5. 每个模块都要有类型注解和必要注释;
6. 使用 pytest 编写测试;
7. 生成 README.md、用户说明文档和论文第5章写作素材;
8. 修改前先输出开发计划,等待我确认后再开始写代码。
13. 最好用“工程经理式表达”
不要这样写:
写一个高级点的系统。
要这样写:
请按照真实 Python 工程项目标准实现。
代码需要满足:
1. 可运行;
2. 可测试;
3. 可扩展;
4. 有配置文件;
5. 有日志;
6. 有异常处理;
7. 有 README;
8. 有测试用例;
9. 有示例数据;
10. 有论文说明文档。
这样 Codex 输出的东西会更像一个完整项目。
14. 小结
Codex 客户端最好不要当“代码生成器”用,而要当“工程协作助手”用。正确方式是:先让它理解项目,再让它规划结构,然后分模块开发,每一步都加验收标准,最后让它运行测试并同步更新文档。这样才能写出真正能运行、能解释、能放进毕业设计里的项目。
更多推荐


所有评论(0)