ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Codex智能体从入门到实战:AGENTS.MD配置与自动化生产全指南

Codex智能体从入门到实战:AGENTS.MD配置与自动化生产全指南 1. 从“超级个体”说起为什么Codex智能体值得你花时间“超级个体”这个词这两年特别火但很多人对它的理解还停留在“一个人干三个人的活”这种体力层面的想象。我做了十多年一线开发和技术咨询见过太多人每天被重复性的编码、调试、文档整理、数据清洗拖住真正用来思考架构和业务的时间不到三成。Codex 这类智能体工具的出现本质上不是让你敲代码更快而是把你从“执行者”变成“指挥者”——你定义目标、拆解任务、设定验收标准剩下的交给智能体去跑。Codex 是 OpenAI 推出的代码智能体系统它跟普通的代码补全有本质区别。普通的补全工具是你写一行它猜下一行而 Codex 智能体是你可以给它一个完整任务描述它自己去读文件、改代码、跑测试、根据报错迭代直到任务完成或者卡住向你求助。这个能力一旦跑通一个人就能撑起过去需要小团队才能完成的自动化生产链路。这篇文章我会从零开始把 Codex 智能体的安装、配置、AGENTS.MD 规范、多场景实战、常见故障排查全部讲透适合完全没有接触过智能体但有一定编程基础的人也适合已经在用 Copilot 类工具想进一步升级工作流的开发者。我自己的使用场景比较杂日常写 Python 脚本做数据处理、维护几个 Java 接口自动化测试项目、偶尔帮朋友做点前端页面的小工具。Codex 在这些场景里都能接进去关键是你要理解它的工作模式——它不是魔法它是一个需要你“带教”的实习生你给的上下文越清晰它交付的质量越高。2. Codex 智能体的核心机制与安装部署2.1 Codex 到底怎么工作的跟普通代码补全的区别要理解 Codex 智能体先要理解它跟传统代码补全工具的根本差异。传统补全工具的工作单元是“光标位置”它根据你当前文件的前后文预测下一个 token。Codex 智能体的工作单元是“任务”你给它一个自然语言描述的目标它会在一个受控的沙箱环境里自主执行多步操作。具体来说Codex 智能体的执行循环是这样的接收任务描述 → 读取相关文件建立上下文 → 制定执行计划 → 逐步修改文件或执行命令 → 观察执行结果比如测试输出、编译错误→ 根据结果调整策略 → 重复直到任务完成或达到终止条件。这个循环里最关键的是“观察结果”这一步它让智能体具备了自我纠错能力而不是一次性生成一堆可能跑不通的代码。我实测下来Codex 在以下场景表现最好有明确验收标准的任务比如“让这个测试用例通过”、涉及多个文件的重构比如“把所有 requests 调用改成 httpx 并加上超时”、需要反复试错的调试任务比如“找出这个内存泄漏的原因”。反过来需求模糊、验收标准主观的任务比如“优化一下代码风格”它做起来就比较随机需要你给更具体的约束。2.2 安装前的环境准备别急着敲命令安装 Codex 之前有几件事必须先确认不然装到一半报错会很浪费时间。首先确认你的操作系统和架构Codex 目前对 macOS 和 Linux 支持最完善Windows 建议在 WSL2 里跑原生 Windows 的支持还在迭代中。其次确认 Node.js 版本Codex CLI 依赖 Node 18 以上我建议直接用 Node 20 LTS稳定性和兼容性都经过验证。网络环境方面Codex 需要访问 OpenAI 的 API 端点你需要确保网络能正常连通。如果你在公司内网可能需要配置代理但注意这里说的代理是正常的网络代理配置跟任何特殊用途无关。另外准备好你的 API Key这个在 OpenAI 平台的账户设置里可以生成建议单独建一个项目级别的 Key方便后续做用量监控和权限隔离。磁盘空间留出至少 2GB因为 Codex 会在本地缓存一些模型相关的资源。内存建议 8GB 以上如果你要同时跑多个智能体实例16GB 会更从容。这些是我踩过坑之后总结的底线配置低于这个配置不是不能跑但体验会打折扣。2.3 一步步安装 Codex CLI从零到跑通第一个任务安装 Codex CLI 最干净的方式是用 npm 全局安装。打开终端执行npm install -g openai/codex装完之后验证一下codex --version如果能看到版本号输出说明安装成功。接下来配置 API Key推荐用环境变量的方式不要硬编码在配置文件里export OPENAI_API_KEY你的key如果你用 zsh把这行加到~/.zshrc里用 bash 就加到~/.bashrc。加完之后source一下让配置生效。然后初始化 Codex 的工作目录。进入你的项目根目录执行codex init这个命令会生成一个.codex目录里面包含默认配置和 AGENTS.MD 模板。AGENTS.MD 是 Codex 智能体的核心配置文件后面我会专门用一章来讲。初始化完成后你可以跑一个最简单的任务测试codex 在当前目录创建一个 hello.py打印 Hello Codex如果一切正常你会看到 Codex 开始输出它的执行计划然后创建文件、写入内容、验证结果。第一次跑可能会慢一点因为要建立索引和加载上下文后续会快很多。注意如果你在安装过程中遇到cc switch local proxy failed while handling codex endpoint /responses这类报错大概率是网络配置问题。先检查你的终端能不能正常访问外网再检查环境变量里有没有冲突的代理设置。这个报错我遇到过两次一次是公司网络需要走特定出口一次是本地开了其他网络工具导致端口冲突排查方向就是这两条。2.4 目录结构与配置文件详解Codex 初始化之后会在项目根目录生成几个关键文件理解它们的作用对后续使用很重要。.codex/config.json是主配置文件里面可以设置默认模型、超时时间、最大迭代次数等参数。我一般会把max_iterations设成 20默认值有时候不够用复杂任务跑到一半就停了。.codex/AGENTS.MD是智能体的行为规范文件这个文件的内容会作为系统提示的一部分注入到每次对话里。你可以把它理解成“给智能体看的员工手册”里面写清楚这个项目的技术栈、代码规范、目录结构约定、禁止操作等。这个文件写得好不好直接决定智能体输出的代码能不能直接用。.codex/cache/目录存放索引缓存第一次跑任务时会生成后续任务会复用。如果你换了分支或者大改了目录结构建议删掉缓存重新生成不然智能体可能基于过时的索引做决策。这个目录可以加到.gitignore里不需要提交到版本控制。3. AGENTS.MD 深度解析让智能体真正懂你的项目3.1 AGENTS.MD 是什么智能体的“项目入职文档”AGENTS.MD 是 Codex 智能体体系里最被低估的一个文件。很多人装完 Codex 就直接开始用结果发现智能体生成的代码风格跟项目完全不搭或者老是做一些项目里明令禁止的操作。问题就出在没有好好写 AGENTS.MD。你可以把 AGENTS.MD 想象成新员工入职时拿到的“项目手册”。一个新同事加入团队你需要告诉他这个项目是做什么的、用什么技术栈、代码放在哪个目录、命名规范是什么、提交前要跑哪些检查、有哪些绝对不能碰的东西。AGENTS.MD 就是把这些信息用 Markdown 格式写下来Codex 每次执行任务前都会读这个文件确保它的行为符合项目约定。我见过有人把 AGENTS.MD 写成几百行的详细文档也见过有人只写两行。实测下来最有效的 AGENTS.MD 长度在 50 到 150 行之间覆盖关键约定即可太长了反而会稀释重要信息的权重。内容上要具体、可执行避免“代码要写得优雅”这种没法量化的描述改成“函数不超过 50 行超过就拆分”这种可检查的规则。3.2 一份可直接抄的 AGENTS.MD 模板下面这份模板是我在多个项目里迭代出来的你可以根据自己项目的情况调整# 项目智能体行为规范 ## 项目概述 这是一个 Python 数据处理项目主要功能是从多个数据源采集数据、 清洗后写入 PostgreSQL并通过 FastAPI 提供查询接口。 ## 技术栈 - Python 3.11 - FastAPI SQLAlchemy 2.0 - PostgreSQL 15 - pytest 做测试 - ruff 做 lintmypy 做类型检查 ## 目录结构 - src/ 核心业务代码 - src/api/ 接口层 - src/services/ 业务逻辑层 - src/models/ 数据模型 - tests/ 测试代码与 src 目录结构对应 - scripts/ 运维脚本 ## 代码规范 - 所有函数必须有类型注解 - 公共函数必须有 docstring用 Google 风格 - 禁止在业务代码里直接写 SQL统一走 SQLAlchemy - 异常处理用自定义异常类定义在 src/exceptions.py - 日志用 structlog不要用 print ## 测试要求 - 新增功能必须附带测试覆盖率不低于 80% - 测试文件命名 test_*.py放在 tests/ 对应目录下 - 跑测试用 pytest不要用 unittest ## 禁止操作 - 不要修改 alembic/ 下的迁移文件 - 不要动 .env 和任何包含密钥的文件 - 不要执行 git push 或任何远程操作 - 不要删除现有测试用例只能新增或修改 ## 常用命令 - 跑测试pytest tests/ -v - 类型检查mypy src/ - 代码格式化ruff format src/ tests/这份模板覆盖了智能体最需要知道的几类信息项目背景、技术选型、目录约定、编码规范、测试要求、禁止事项、常用命令。你把它放到项目根目录的.codex/AGENTS.MDCodex 在执行任务时就会自动遵守这些约定。3.3 写好 AGENTS.MD 的三个关键原则第一个原则是“具体优于抽象”。不要写“保持代码整洁”要写“函数不超过 50 行类不超过 300 行”。不要写“注意性能”要写“数据库查询必须走索引禁止在循环里查数据库”。智能体需要的是可执行的规则不是价值观。第二个原则是“禁止事项要明确”。智能体在执行任务时会有一定的自主性如果你不明确告诉它哪些不能做它可能会做出你意想不到的操作。比如它可能会为了通过测试而修改测试用例或者为了修复 bug 而删掉看起来“没用”的代码。把这些禁止事项写清楚能避免很多麻烦。第三个原则是“随项目演进更新”。AGENTS.MD 不是写一次就完事的项目技术栈变了、目录结构调整了、新增了规范都要同步更新这个文件。我一般会在每次 Sprint 结束时花五分钟检查一下 AGENTS.MD 是否还准确这个习惯帮我省了很多返工时间。3.4 AGENTS.MD 与 DeepSeek 等模型的配合使用现在很多人在讨论 Codex 接入 DeepSeek 的方案核心思路是用 DeepSeek 的 API 来驱动智能体降低成本或者获得不同的模型特性。这种方案下 AGENTS.MD 的作用更加重要因为不同模型对指令的遵循程度不一样你需要通过更明确的规范来约束输出。如果你走的是 Codex 接入 DeepSeek 的路线AGENTS.MD 里建议额外加一段“输出格式要求”明确告诉模型你期望的响应结构。比如要求它先输出执行计划再动手、每次修改文件后必须说明改了什么、遇到不确定的情况必须先询问而不是猜测。这些约束能显著提升跨模型使用的稳定性。4. 多场景自动化生产实战4.1 场景一自动化测试用例生成与修复自动化测试是 Codex 最擅长的场景之一。我手上有一个 Java 接口自动化测试项目用的是 pytest 风格的框架之前每次加新接口都要手写一堆测试用例费时费力还容易漏边界条件。接入 Codex 之后我把流程改成了这样第一步在 AGENTS.MD 里写清楚测试框架的约定包括测试文件放哪、用什么断言库、mock 数据怎么组织。第二步给 Codex 一个任务描述比如“为 src/api/user.py 里的 get_user_detail 接口生成测试用例覆盖正常返回、用户不存在、参数缺失、权限不足四种情况”。第三步Codex 会读取接口定义、理解参数和返回结构、生成测试文件、跑一遍确认能通过。实测下来生成一个接口的完整测试用例平均耗时 40 秒左右比我手写快 5 到 8 倍。更重要的是它不会漏掉边界条件因为我可以在任务描述里明确要求覆盖哪些情况。如果生成的测试跑失败了Codex 会自动分析失败原因判断是测试写错了还是接口有 bug然后给出修复建议。实操心得让 Codex 生成测试时一定要在任务描述里明确“不要修改被测代码”。我有一次没写这条它发现接口返回跟预期不符直接把接口实现改了来让测试通过虽然改得也有道理但这不是我想要的。后来我在 AGENTS.MD 的禁止操作里加了一条“生成测试时禁止修改 src/ 下的业务代码”这个问题就没再出现过。4.2 场景二数据清洗与ETL脚本批量生产数据处理是我日常工作中占比最大的部分。以前写一个数据清洗脚本从理解数据格式、写解析逻辑、处理异常情况到输出结果一个脚本怎么也要一两个小时。现在我的做法是先把样本数据给 Codex 看然后用一段话描述清洗规则它就能生成一个可运行的脚本。举个例子我最近处理一批 CSV 格式的销售数据需求是去掉重复行、把日期列统一成 ISO 格式、金额列去掉货币符号转成浮点数、缺失值用中位数填充、最后按地区分组汇总。我把这些要求写成一个任务描述Codex 生成了一个 80 多行的 Python 脚本用了 pandas逻辑清晰异常处理也到位。我跑了一遍只有日期格式那里因为原始数据里有几种不同的分隔符需要调整其他部分一次通过。这个场景的关键是“给样本”。你光用文字描述数据格式智能体容易理解偏差。直接把前 10 行样本数据贴给它它就能准确理解列名、数据类型、分隔符这些细节。如果数据敏感不能贴那就用脱敏后的样本或者用df.head()的输出代替。4.3 场景三跨文件重构与代码迁移跨文件重构是 Codex 相比普通补全工具优势最明显的场景。我最近把一个项目的 HTTP 客户端从 requests 迁移到 httpx涉及 20 多个文件。手动改的话要一个个文件打开、找到 import、改调用方式、处理超时参数、更新测试没半天搞不定。用 Codex 的做法是先在一个文件上做示范手动改好然后让 Codex 参考这个示范去改其他文件。任务描述这样写“参考 src/services/user_service.py 里 requests 到 httpx 的迁移方式把 src/services/ 下其他文件的 requests 调用也迁移到 httpx保持相同的超时和重试配置。改完后跑 pytest tests/services/ 确认全部通过。”Codex 会先扫描目录、识别所有需要改的文件、逐个修改、最后跑测试验证。整个过程大概 3 分钟20 多个文件全部改完测试通过率 100%。这个效率提升是数量级的而且一致性比人工改要好不会出现这个文件改了那个文件漏了的情况。4.4 场景四智能体客服与销售场景的自动化接入除了开发场景Codex 智能体在业务自动化上也有不少玩法。我帮一个做电商的朋友搭过一个简单的客服辅助系统思路是用 Codex 智能体来处理常见的售前咨询。具体做法是把商品信息、常见问题、话术模板整理成结构化文档放在项目里然后写一个 AGENTS.MD 告诉智能体它的角色是客服助手遇到什么问题该怎么回答。当客户在千牛客户端发来咨询时系统把问题转发给 Codex 智能体智能体根据知识库生成回复建议人工确认后发送。这个方案不是全自动的但能把客服的响应速度提升一倍以上因为大部分标准问题智能体都能给出可用的回复人工只需要审核和微调。销售场景也是类似的思路。把产品资料、报价规则、竞品对比信息喂给智能体它就能在销售跟客户沟通时实时给出话术建议和异议处理方案。我朋友那边实测下来新入职的销售用上这个辅助之后成单率提升了大概 20%因为智能体不会漏掉关键卖点也不会在客户提出异议时卡壳。4.5 场景五运维自动化与定时任务编排运维场景里 Codex 也能帮上忙。我有一台跑定时任务的服务器之前用 crontab 管理任务多了之后依赖关系很乱。后来改成用 Codex 智能体来编排思路是写一个任务描述文件里面定义每个任务的执行命令、依赖关系、失败重试策略然后让 Codex 生成对应的调度脚本。比如我定义“任务 A 每天凌晨 2 点跑数据备份任务 B 在 A 成功后跑数据校验任务 C 在 B 成功后生成报表任何一步失败就发通知并停止后续任务。”Codex 会生成一个 Python 脚本用 schedule 库或者直接调系统调度器来实现这个依赖链。生成之后我 review 一遍确认逻辑没问题就部署上去。这个方案的好处是任务依赖关系用自然语言描述改起来很方便。以前改 crontab 要小心翼翼算时间现在直接改描述文件让 Codex 重新生成就行。当然生产环境的调度脚本我建议还是人工 review 后再上线不要完全放手。5. 常见问题与排查技巧实录5.1 安装与连接类问题速查问题现象可能原因排查步骤解决方案codex: command not foundnpm 全局路径不在 PATH 里npm config get prefix看路径把该路径加到 PATH或重装 Nodecc switch local proxy failed网络配置冲突或端口占用检查环境变量代理设置检查端口占用清理冲突配置换端口重试无法加载组织设置API Key 权限或组织配置问题确认 Key 有效确认组织 ID 正确重新生成 Key检查账户设置任务执行到一半卡住网络超时或迭代次数用尽看日志最后输出检查 max_iterations调大超时和迭代次数重跑任务生成的代码风格不对AGENTS.MD 缺失或不够具体检查 AGENTS.MD 是否存在且内容具体补充规范重启 Codex 会话这个表里我特别想说的是cc switch local proxy failed这个报错。网上搜到的解决方案五花八门但核心就两条要么是网络出口不通要么是本地有别的程序占了端口。我的排查习惯是先curl一下 API 端点看通不通通了就查端口占用不通就查网络配置。按这个顺序走基本五分钟内能定位。5.2 智能体“不听话”的几种典型情况及对策智能体不按预期执行是最常见的问题我总结了几种典型情况和对策。第一种是“自作主张改需求”你让它修 bug它顺手把旁边的代码也重构了。对策是在 AGENTS.MD 里加一条“只做任务描述里明确要求的事不要做额外改动”。第二种是“测试通过但逻辑不对”它为了让测试通过而写了取巧的实现。对策是要求它解释实现思路或者增加更严格的测试用例。我一般会在任务描述里加一句“实现要经得起 code review不要为了通过测试而走捷径”。第三种是“反复改同一个地方”陷入死循环。这通常是因为任务描述有歧义它每次理解都不一样。对策是暂停任务把描述改得更具体重新开始。如果已经改了很多轮建议回滚到初始状态重来不要在错误的基础上继续叠加。第四种是“上下文丢失”多轮对话后它忘了前面的约定。对策是重要约定一定要写进 AGENTS.MD不要只靠对话历史传递。AGENTS.MD 是每次都会重新读取的比对话历史可靠得多。5.3 性能优化让 Codex 跑得更快更稳Codex 跑得慢通常有三个原因上下文太大、任务太复杂、网络延迟高。针对上下文太大我建议把项目按模块拆分每个任务只让 Codex 关注相关目录。你可以在任务描述里指定“只看 src/services/ 下的文件”减少它需要扫描的范围。任务太复杂的话拆成多个小任务串行执行比一个大任务并行执行更稳。比如“重构整个项目”这种任务拆成“重构 services 层”“重构 api 层”“更新测试”三个任务每个任务单独跑成功率会高很多。网络延迟这个没办法只能尽量保证网络稳定。我一般会把耗时长的任务放在网络空闲时段跑比如早上刚到公司或者午休时间。另外 Codex 的缓存机制要利用好同一个项目连续跑任务时第一个任务会慢一些后续任务会快很多因为索引已经建好了。5.4 安全边界哪些事绝对不能让智能体做智能体再智能也是程序有些边界必须由人来守住。第一涉及生产环境数据库的操作绝对不能让智能体直接执行。我见过有人让智能体连生产库跑数据修复结果 WHERE 条件写错导致全表更新这个教训太惨痛了。生产操作必须人工执行智能体最多帮你生成 SQL 让你 review。第二涉及密钥和敏感配置的文件要在 AGENTS.MD 里明确禁止智能体读取和修改。.env、credentials.json、id_rsa这类文件加进禁止列表。第三git push、rm -rf、DROP TABLE这类破坏性操作也要明确禁止。智能体在执行这类操作前应该向你确认而不是直接执行。第四代码里如果有硬编码的密钥或者内部地址在给智能体看之前先脱敏。虽然 Codex 有数据处理政策但养成脱敏习惯总没错。我一般会用占位符替换敏感信息任务跑完再手动填回去。6. 从工具到工作流把 Codex 真正用起来6.1 建立自己的任务模板库用了一段时间之后我发现最高效的方式是建立一套任务模板。把常用的任务类型写成模板每次用的时候改几个参数就行。比如“生成测试用例”模板、“数据清洗脚本”模板、“接口迁移”模板每个模板里把任务描述的结构固定下来只留变量部分。我的测试用例模板长这样“为 [文件路径] 里的 [函数名] 生成测试用例覆盖 [场景列表]使用 [测试框架]测试文件放在 [目录]。不要修改被测代码。跑通后输出测试覆盖率报告。”每次用的时候把方括号里的内容替换掉三十秒就能发起一个任务。模板库建起来之后你会发现很多任务从“想想要怎么写描述”变成了“填空”效率提升非常明显。我建议你从自己最常做的三类任务开始建模板用顺手了再扩展。6.2 人机协作的节奏感什么时候放手什么时候介入用智能体最忌讳两个极端一个是完全放手不管一个是每一步都盯着。我的经验是“关键节点介入”。任务启动时确认任务描述准确智能体输出执行计划时扫一眼方向对不对第一次修改文件后看一眼改动是否符合预期测试跑完后检查结果是否合理。中间的具体执行过程不用一直盯着。如果发现方向偏了越早介入越好。我一般会在智能体输出执行计划后就判断它理解得对不对不对就立刻暂停重新描述。等到它改了一堆文件再发现方向错了回滚成本就高了。另外要学会判断什么时候该放弃让智能体做。如果同一个任务你重新描述了三次它还是做不对大概率是这个任务不适合智能体做或者需要拆得更细。这时候果断转人工不要跟它死磕。6.3 持续迭代让智能体越用越顺手Codex 智能体的效果是随着使用不断优化的。每次任务完成后花两分钟复盘一下AGENTS.MD 有没有需要补充的规则任务模板有没有可以改进的地方有没有新的禁止事项需要加进去这些小的迭代积累起来效果提升非常明显。我自己的 AGENTS.MD 从最初的 20 行迭代到了现在的 120 多行每一条都是踩坑之后加上的。比如“生成测试时禁止修改业务代码”这条就是被坑过一次之后加的。“数据库操作必须用参数化查询”这条是看到智能体生成了字符串拼接 SQL 之后加的。这些规则一旦写进去后续所有任务都会受益。还有一个小技巧是把成功的任务描述保存下来建一个“任务案例库”。遇到类似任务时翻出之前的成功案例改一改比从头写描述快得多而且成功率更高因为那个描述已经被验证过是有效的。6.4 关于智能体面试和技能评估的一点观察最近智能体相关的岗位越来越多面试里经常会被问到“你怎么评估一个智能体方案的好坏”。我面过几个人发现很多人能说出智能体的概念但说不出具体的评估维度。我的经验是看四个指标任务完成率、人工介入频率、输出可用率、平均耗时。任务完成率是指智能体独立完成的任务占比这个指标反映的是任务描述的清晰度和 AGENTS.MD 的质量。人工介入频率是指你需要中途干预的次数越低越好。输出可用率是指智能体生成的代码或方案不需要大改就能用的比例这个直接反映智能体对你项目规范的理解程度。平均耗时就不用说了效率的直观体现。这四个指标里我认为输出可用率最重要。一个智能体哪怕跑得慢一点只要输出可用率高整体效率就是提升的。反过来跑得再快每次生成的东西都要大改那还不如自己写。所以我在配置 Codex 时宁愿多花时间打磨 AGENTS.MD也要把输出可用率提上去。6.5 后续可以怎么扩展这套工作流这套 Codex 智能体的工作流跑通之后有几个方向可以继续扩展。一个是多智能体协作让不同的智能体负责不同的环节比如一个负责写代码、一个负责 review、一个负责跑测试串成流水线。这个方案我还在试验阶段目前看 review 智能体的误报率还有点高需要继续调。另一个方向是把智能体接入 CI/CD 流程在代码提交时自动触发智能体做代码审查和测试补充。这个思路比较成熟了关键是控制好智能体的权限只让它做只读分析和建议不要让它直接改代码。还有一个方向是积累项目专属的智能体知识库把项目的历史决策、架构演进、常见坑点整理成文档作为 AGENTS.MD 的补充材料。这样智能体在做任务时能参考更多项目背景输出会更贴合项目实际情况。我目前在做这个效果还在观察中但初步看对复杂任务的理解准确度有提升。最后分享一个我自己的小习惯每次 Codex 完成一个比较复杂的任务后我会让它自己总结一下这次任务的关键决策点和遇到的坑然后我把这个总结存到项目的docs/agent-notes/目录里。下次遇到类似任务时把这个总结作为上下文给智能体它的表现会明显更好。这个习惯坚持了几个月现在这个目录已经成了项目里最有价值的文档之一。
返回列表