当前位置: 首页 > news >正文

llm-coding-agent 教程:200 行 Python 搭一个 Claude Code 风格的编码 Agent(附完整代码)

TL;DR

Simon Willison 用 Claude Fable 5 从零搭建了一个 Claude Code 风格的 Python 编码 Agent,已发布到 PyPI。本文拆解它的核心架构——5 个工具、一个 Agent 主循环、以及不到 200 行就能跑起来的完整实现,附上可直接运行的代码和踩坑提示。

1. 背景:为什么还要自己搭一个 Coding Agent?

Claude Code、Codex、Cursor——市面上的 AI 编码工具已经够多了。但 Simon Willison 决定自己动手,理由很直接:他的 LLM 库 已经演化成一个 Agent 框架,他想验证它能不能支撑一个完整的 coding agent。更重要的是,自己搭意味着你能理解每一行代码在做什么——这恰好呼应了 Geoffrey Litt 在 AIE 大会上说的"理解才能参与"。

他用 Claude Fable 5 写了 spec、实现了所有代码、跑了测试、写了文档,最后发布到 PyPI。你可以这样安装:

uvx--prerelease=allow--withllm-coding-agent llm code

2. 核心架构:五个工具 + 一个主循环

llm-coding-agent 的架构极其简洁。它只有5 个工具,每个工具就是一个 Python 函数:

工具功能对应 Claude Code 的哪个能力
edit_file精确字符串替换(old_string → new_string)Edit 工具
execute_command在项目根目录执行 shell 命令Bash 工具
list_files按 glob 模式列出文件Glob 工具
read_file读取文件,返回 cat -n 格式的行号输出Read 工具
write_file创建或覆盖文件(自动创建父目录)Write 工具

Fable 还贴心地加了一个search_files工具做正则搜索——这其实是 Simon 没要求的,但 Fable 自己判断应该加上。

Agent 主循环和 Claude Code 一样:读用户指令 → 调用工具 → 拿结果 → 继续调用工具 → 返回最终结果。关键区别在于,llm-coding-agent 把这个循环暴露为 Python API:

fromllm_coding_agentimportCodingAgent agent=CodingAgent(model="gpt-5.5",# 也可以用 claude-sonnet-5-20250914root="/path/to/project",approve=True# False 就是 --yolo 模式)agent.run("Fix the failing test in tests/test_parser.py")

3. 上手实操:5 分钟搭起来

第一步,确保有 Python 3.10+ 和 uv:

# 安装 uv(如果没有)curl-LsSfhttps://astral.sh/uv/install.sh|sh# 安装 llm-coding-agent(预发布版)uvx--prerelease=allow--withllm-coding-agent llm code

第二步,配置 API key。llm-coding-agent 复用了 LLM 库的配置,所以如果你已经配过llm keys set openai,直接就能用。没有的话:

pipinstallllm --break-system-packages llm keyssetopenai# 粘贴你的 OpenAI API key

第三步,跑起来:

# 交互模式(需要你审批每个操作)llm code# --yolo 模式(自动执行,适合小任务)llm code--yolo# 只允许特定命令llm code--allow"pytest*"--allow"git diff*"

试试让它写个 ASCII 艺术时钟:

llm code--yolo>mkdir/tmp/demo&&cd/tmp/demo&&create a simple Python CLI appfortelling thetimeinascii art

Simon 实测的结果——GPT-5.5 生成了一个完整的 Swift 命令行 ASCII 时钟。你的体验取决于模型,但核心循环是一样的。

4. 踩坑提示

工具权限控制是重点。--yolo模式会让 Agent 自动执行所有命令,包括rm -rf。建议日常使用--allow白名单:

llm code--allow"pytest*"--allow"git*"--allow"python*"

模型选择影响很大。Fable 5 和 GPT-5.5 在编码任务上表现最好,但成本也最高。Simon 在 7 月 3 日的笔记里分享了一个技巧:告诉 Agent “对小任务用 Sonnet/Haiku 做子代理,自己判断”——这能省不少 token。

这个项目还在 alpha 阶段。功能远不如 Claude Code 完善,但代码量极少(核心不到 500 行),非常适合学习和魔改。

5. 这意味着什么

llm-coding-agent 的意义不在于"又一个编码工具",而在于它证明了 coding agent 的核心循环可以压缩到几百行 Python。当你能看懂每一行代码时,你对 AI 写代码这件事的掌控力就完全不同了——你不会再盲目信任,而是能精确判断它哪里可能出错。

正如 Armin Ronacher 在 7 月 4 日的文章里指出的,即使是 Opus 4.8 这样的顶级模型,在自定义工具调用上也可能出错。理解工具层的实现细节,能帮你更快定位问题。

6. 参考资料

  • Simon Willison: llm-coding-agent 0.1a0
  • llm-coding-agent GitHub
  • LLM 库文档
  • Simon Willison: Let Fable use its own judgement
http://www.jsqmd.com/news/1162005/

相关文章:

  • 2026年靠谱抽象不锈钢雕塑厂家选择指南 - 曲阳嘉华园林
  • 如何免费解锁WeMod Pro功能:Wand-Enhancer客户端增强完全指南
  • 2026防城港本地认可 5 家建筑建材检测机构实地测评汇总 TOP5 钢筋水泥 + 混凝土砂石 + 保温防水材料检测 附电话地址 - 科信检测
  • 常州 LV 名包回收哪家靠谱?天宁新手入门包防坑实测指南 - 奢侈品回收中心
  • Lattice容器调度原理:深入理解Diego工作负载管理
  • 如何利用 Winbindex 进行 Windows 系统文件版本对比和分析:终极指南
  • MCP Marketplace精选服务器推荐:提升AI代理能力的10个必备工具
  • 神仙物业撤场:物业服务需要双向奔赴而非单方面奉献
  • ACL 2026:投稿暴增 45%,华人包揽最佳论文,大模型主导下“非 LLM”论文获殊荣
  • 2026年7月最新郑州天梭官方售后客户服务热线与维修网点地址汇总 - 天梭服务中心
  • 2026海口本地认可 5 家土壤检测机构实地测评汇总 TOP5 重金属 + 养分 pH + 污染风险监测 附电话地址 - 中安检测集团
  • 如何用ps进行换脸?ps换脸教程步骤
  • 【无人机多目标路径规划】(多目标路径规划)MOCOA多目标浣熊算法实现无人机多目标路径规划附Matlab代码
  • 2026长春奢侈品回收正规门店推荐榜:名包名表钻戒全城上门高价回收 - 商业快讯早知道
  • 2026年宜昌空调维修口碑推荐:5家同城专业诚信服务放心选择 - 本地品牌推荐
  • 154个高质量科学图表:物理、化学与机器学习的可视化宝库
  • Ratchet高级技巧:内存优化与WebGPU资源池管理策略
  • 2026大兴安岭本地认可 5 家土壤检测机构实地测评汇总 TOP5 重金属 + 养分 pH + 污染风险监测 附电话地址 - 中安检测集团
  • 江诗丹顿中国官方售后服务中心|地址与官方电话权威信息公示(2026年7月最新) - 江诗丹顿服务中心
  • 2026年GIS三维软件选购指南:案例多、资质全的公司有哪些特点 - 品牌深度评测
  • 如何免费下载30+文档平台:kill-doc浏览器脚本终极指南
  • Ratchet性能调优指南:提升WebGPU推理速度的10个技巧
  • React-Native-Wechat-Lib 3.0.x 版本深度解析:新特性与迁移指南
  • 深圳正规的打官司
  • 你做的GEO内容为什么AI不引用?GEO应该怎么做
  • dicomParser实战指南:浏览器与Node.js环境下的DICOM文件解析
  • 实验室陶瓷台面怎么选?优瑞斯URAISE品牌实力与选型指南 - 信息热点
  • 2026东莞装修公司哪家好?深度实测五大本土老牌,9.9分自有工厂龙头稳居口碑榜首(附避坑指南) - 刘不刘
  • 终极Lens Kubernetes管理指南:从零到精通可视化集群运维
  • React-Native-Wechat-Lib 路线图与未来展望:功能规划与版本迭代计划