news 2026/10/11 21:44:20

CoreCoder实战教程:一个while循环如何驱动AI自动读文件、改代码、跑测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CoreCoder实战教程:一个while循环如何驱动AI自动读文件、改代码、跑测试

【免费下载链接】CoreCoder

Minimal AI coding agent (~1,000 lines of Python) inspired by Claude Code. Works with any LLM. Think NanoGPT for coding agents. Formerly NanoCoder.

项目地址:https://gitcode.com/gh_mirrors/co/CoreCoder
点击查看免费下载

CoreCoder 是一个核心约 1,000 行的极简 AI 编码智能体(AI coding agent),受 Claude Code 启发、可用任意 LLM 驱动。本教程带你从安装到上手,看清一个 while 循环如何让 AI 自动读文件、改代码、跑测试,并理解背后的权限与计划模式等安全机制。

为什么一个 while 循环能驱动 AI 编码智能体

先打破一个迷思:编码智能体不是魔法,核心就是一个「问模型 → 执行工具 → 把结果喂回去 → 再问」的循环:

def chat(self, user_input): self.messages.append(user_input) for _ in range(self.max_rounds): # 有轮次上限,不会失控 reply = self.llm.chat(self.messages, self.tools) if not reply.tool_calls: # 模型不再要工具 return reply.text # 干完了,交回答案 results = run_parallel(reply.tool_calls) # 有工具请求 → 执行 self.messages += results # 结果喂回去,继续下一轮

就这么点东西。剩下的上千行代码,都是为「循环遇见真实世界」兜底:模型返回半个 JSON 怎么办、上下文塞满了怎么办、十个工具同时跑怎么办。完整主循环就在 agent.py 的chat()方法里,不到 60 行,一口气读完。

五分钟安装运行 CoreCoder:新手快速上手指南

CoreCoder 是纯 Python 项目,pip一键装好:

pip install corecoder

它默认走 OpenAI 兼容接口,换模型只需改两个环境变量(可写在项目根目录的.env里,见 config.py):

模型提供商环境变量配置
OpenAI(默认)OPENAI_API_KEY=sk-...
DeepSeek(便宜)OPENAI_API_KEY=sk-... OPENAI_BASE_URL=https://api.deepseek.com CORECODER_MODEL=deepseek-chat
本地 Ollama(免费)OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 CORECODER_MODEL=qwen2.5-coder

然后两种方式任选:

corecoder # 交互式 REPL,持续对话 corecoder -p "给 parse_config() 加错误处理" # 一次性任务,干完自动退出

💡没有 API key 也能玩:项目内置了离线演示 demo.py,用脚本化的假 LLM 走一遍真实主循环,跑python -m corecoder.demo就能看到 AI 写fib.py、写测试、跑 pytest 的全过程。

AI 自动读文件、改代码、跑测试:完整过程拆解

下面这张图是一次真实任务的完整轨迹:一句话让 CoreCoder 修buggy.py里的 bug,它自己决定先读文件、再精确改一处、然后运行验证,最后口头汇报——全程无人干预:

对照循环,这四步各发生什么:

  1. 读文件— 模型第一轮回复带一个read_file工具调用,循环执行后把文件内容作为「工具结果」塞回上下文;
  2. 改代码— 第二轮模型看到内容,发出edit_file调用。CoreCoder 用的是「唯一性搜索替换」而非行号(见 edit.py):改错位置不可恢复,改错锚点模型能自我纠错;
  3. 跑测试— 第三轮模型自己发起bash调用python buggy.py,用运行结果验证修复;
  4. 汇报— 模型不再请求任何工具,循环自然退出,文本回复交还给你。

八个内建工具都放在 corecoder/tools/ 目录,每个文件不到 200 行:

工具作用权限级别
read_file/glob/grep读文件、找文件名、搜内容只读,即点即跑
edit_file/write_file精确改代码、写新文件需用户同意
bash跑 shell 命令需用户同意
todo_write智能体自己维护任务清单只读
agent派生子智能体分担子任务需用户同意

🔧 模型一次返回多个工具调用时,CoreCoder 会用线程池并行执行(见 agent.py 的_exec_tools_parallel),读三个文件不用排队,长任务明显提速。

权限模式与计划模式:AI 智能体的安全机制

让 AI 自动跑命令,你敢吗?CoreCoder 的答案写在 permissions.py:

  • 只读工具即点即跑,写文件、改代码、跑命令则先停下来问你:允许一次 / 始终允许 / 拒绝。「始终允许」按工具记住,存在~/.corecoder/permissions.json,重启后依然生效;
  • 一次性模式(-p)默认拒绝一切改动,因为没有人在场可以问——拒绝会作为普通工具结果喂回模型,让它自行绕行,加--yes才放行(适合脚本和 CI);
  • 计划模式(/plan):开启后智能体只能调查不能动手,改文件的请求会被当场拒绝,它转而给出编号计划;你敲approve批准后,它才执行。

动画演示的正是计划模式的完整流程:读文件放行 → 改文件被拒 → 提交计划 → 批准后编辑、测试一气呵成,且每次工具调用前后都有 hooks 钩子在观察。想自己体验无需联网:跑一下 examples/plan_hooks_demo.py。

从读到改:扩展 CoreCoder 的三条路

读懂之后,最自然的下一步是 fork 一个自己的(git clone https://gitcode.com/gh_mirrors/co/CoreCoder,然后pip install -e .):

  • 换你常用的模型:就是上面两个环境变量,所有模型适配都集中在 llm.py;
  • 加一个自己的工具:照着 tools/base.py(32 行)写个新类即可,比如「跑测试」「调 LSP」,系列文章第 02 篇手把手带你写第一个;
  • 改系统提示词:prompt.py 只有 41 行,改一句话就能看智能体性格变化,是「改一行、看效果」最便宜的地方。

项目内还附了 8 篇双语源码导读(article/00-index.md),从主循环、工具系统、上下文压缩到扩展机制,每个设计决策都对应到具体代码行。

常见问题

Q:CoreCoder 能跑本地模型吗?能。Ollama 一行环境变量接入,全程免费;LiteLLM 后端(pip install "corecoder[litellm]")还能接 100 多家提供商。

Q:一次任务花多少钱?REPL 里敲/tokens实时查看 token 用量和美元估算,价格表可用~/.corecoder/pricing.json覆盖,新模型不用等发版。

Q:和 Claude Code 有什么区别?规模差几百倍,但核心是同一个 while 循环。CoreCoder 的定位是「可运行的教学参考」:每个设计决策压缩到最短可读的代码,让你断点、修改、重跑,再回头理解生产级智能体为什么那么复杂。

总结

一个 AI 编码智能体 = 一个有界循环 + 一套工具 + 一圈兜底工程。CoreCoder 用约 1,000 行核心代码把这条链路完整跑通:读文件、改代码、跑测试、派子任务、压上下文、算成本,全部真实可用。把它 clone 下来跑一次,你会对「智能体如何工作」建立起别人讲半天都讲不清的体感——然后 fork 它,做点更自己的东西。

【免费下载链接】CoreCoder

Minimal AI coding agent (~1,000 lines of Python) inspired by Claude Code. Works with any LLM. Think NanoGPT for coding agents. Formerly NanoCoder.

项目地址:https://gitcode.com/gh_mirrors/co/CoreCoder
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 21:40:45

tldr 中的 `npx` 别名页:从命令别名到 `npm exec` 文档的完整实践

文档教程知识库 【免费下载链接】tldr Collaborative cheatsheets for console commands 📚. 项目地址: https://gitcode.com/GitHub_Trending/tl/tldr 点击查看 免费下载 本篇文章以 tldr 仓库中的 pages.bg/common/npx.md 保加利亚语别名页为核心&…

作者头像 李华
网站建设 2026/10/11 21:40:22

MATLAB实现概率潮流计算:蒙特卡洛与近似贝叶斯方法对比分析

概率潮流计算这几年在电力系统分析里算是高频词了,尤其是分布式新能源大规模接入之后,传统的确定性潮流已经不太够用——风机、光伏出力随机波动,负荷本身也有不确定性,再用一个固定的运行点去评估全网状态,边界情况很…

作者头像 李华
网站建设 2026/10/11 21:39:17

基于YOLO11与DeepSORT的驾驶员疲劳检测实战解析

简介:YOLO11-DeepSORT驾驶员疲劳检测与跟踪系统资源包,面向智能驾驶安全、车联网及计算机视觉方向的研究者和工程师,解决驾驶途中疲劳状态实时监测与预警问题。方案融合YOLO11目标检测与DeepSORT多目标跟踪算法,可对面部特征、眼睛…

作者头像 李华
网站建设 2026/10/11 21:38:50

基于YOLO11+DeepSORT的驾驶员疲劳检测系统实战详解

简介:面向驾驶安全预警与疲劳监测场景,这套基于YOLO11和DeepSORT的驾驶员检测跟踪系统,适合安全驾驶研究人员、算法工程师及高校相关专业学生。系统通过目标检测快速定位驾驶员面部区域,再借助多目标跟踪持续识别闭眼、打哈欠、低…

作者头像 李华
网站建设 2026/10/11 21:37:08

PostgreSQL+pgvector在Java RAG项目中的落地实践

做 RAG 最绕不开的一环就是向量存储。试过专门的向量数据库,也试过内存式方案,最终在一个 Java 项目里我选择了 PostgreSQL pgvector 来落地。用下来最大的感受是:省心。不需要多维护一套中间件,也不需要把 SQL 体系和向量检索拆…

作者头像 李华
网站建设 2026/10/11 21:29:36

ORACLE PL/SQL触发器实战:行级与语句级选型、避坑与性能优化

简介:这份PDF资料面向Oracle数据库开发与运维人员,系统讲解PL/SQL触发器的编程方法,帮助读者掌握用触发器弥补完整性约束不足、实现复杂业务规则与审计跟踪的技能。内容涵盖触发器的基本概念,包括DML触发器、INSTEAD OF触发器与系…

作者头像 李华