Simon Willison's Weblog

llm-coding-agent 0.1a0

6.9内容质量

TL;DR · AI 摘要

Release: llm-coding-agent 0.1a0 Simon Willison’s Weblog Subscribe smallhead Sponsored by: Sonar — Gartner just named Son...

核心要点

  • 主题聚焦:llm-coding-agent 0.1a0
  • 来源:Simon Willison's Weblog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#安全#开源
打开原文

发布:llm-coding-agent 0.1a0

Simon Willison 的博客

订阅

#smallhead

由以下公司赞助:

Sonar — Gartner 最近将 Sonar 评为 2026 年 Gartner 技术债务管理工具魔力象限™ 的领导者。阅读报告,了解如何在整个代码库中衡量和解决技术债务。

获取报告

2026 年 7 月 2 日

发布

llm-coding-agent 0.1a0

— 基于大语言模型的编码代理

另一个 Fable 5 实验。现在我的 LLM 库已经演变为更完整的代理框架,是时候看看基于它构建的简单编码代理会是什么样子了。

我使用 GitHub 模板仓库 python-lib-template-repository 创建了一个新的 Python 库,然后运行了这两个提示(这里是 Claude Code 的网络转录):

为这个项目编写 spec.md - 它将依赖于 PyPI 的最新 "llm" alpha 版本,并实现一个带有文件读写、编辑和命令执行工具的 Claude 风格编码代理

然后:

提交 spec,然后通过一系列合理的提交(每个提交都包含通过的测试和更新的文档)使用 red/green TDD 构建它 - 偶尔使用环境中的 OpenAI API 密钥进行手动测试

这是 spec 文件、生成的 README 文件和提交记录序列。

我已经将一个粗糙的 alpha 版本发布到 PyPI,因此你可以通过以下方式运行新代理:

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

作为首次尝试,效果相当不错!这里是(由 Fable 编写的)README,其中列出了如 llm code --yolo 和 llm code --allow "pytest*" --allow "git diff*" 等配方。

它还提供了一个基于 Python 的 API,围绕 CodingAgent(model="gpt-5.5", root="/path", approve=True).run("Fix the failing test in tests/test_parser.py") 类构建,虽然我没有要求这个功能,但看到它被实现感到非常高兴。

以下是它实现的工具集,通过 uvx ... llm tools 列出:

CodingTools_edit_file(path: str, old_string: str, new_string: str, replace_all: bool = False) -> str 在文件中替换精确字符串。old_string 必须与文件内容完全匹配(包括空格),除非 replace_all 为 true,否则必须唯一标识一个位置。返回更改的 diff 以便验证。CodingTools_execute_command(command: str, timeout: int = 120) -> str 在会话根目录下运行 shell 命令。返回合并后的 stdout 和 stderr,后跟一个退出码行。timeout 单位为秒(最大 600);超时后整个进程树将被终止。CodingTools_list_files(pattern: str = '**/*', path: str = '.') -> str 按照 glob 模式列出文件,按新旧排序。跳过隐藏目录、node_modules、__pycache__ 以及(在 git 仓库中).gitignore 覆盖的文件。最多返回 200 个相对于搜索目录的路径。CodingTools_read_file(path: str, offset: int = 0, limit: int = 2000) -> str 读取文本文件,返回类似 cat -n 的编号行。路径相对于会话根目录。使用 offset(基于 0 的起始行)和 limit(最大行数)来分页读取过大文件。CodingTools_search_files(pattern: str, path: str = '.', glob: str = None, max_results: int = 100) -> str 在文件内容中搜索正则表达式。返回匹配项为 path:line_number:line,最多返回 max_results 个结果。使用 glob(例如 "*.py")来限制搜索的文件范围。CodingTools_write_file(path: str, content: str) -> str 使用给定内容创建或覆盖文件。按需创建父目录。修改现有文件时优先使用 edit_file。

我通过运行 llm 代码 --yolo 并提示以下内容进行了尝试:

创建一个名为 /tmp/demo 的目录,然后在该目录中创建一个简单的 SwiftUI CLI 应用,用于以 ASCII 艺术形式显示时间

以下是记录的对话内容,其中 GPT-5.5 在推理笔记中指出 "SwiftUI 不适合真正的 CLI",然后构建了一个在运行 swift run AsciiTime 时输出以下内容的应用:

code
█    █████         ████     █             █     ███   
     ██    █        █        █   ██      █     ██    █   █  
      █    ████           ███     █             █       █   
      █        █    █        █    █      █      █      █    
     ███   ████          ████    ███           ███   █████

发布时间:晚上7:33

最新文章

  • 让你的代理使用 shot-scraper 视频录制其工作演示视频 - 2026年6月30日
  • 使用 Claude Code 将 Moebius 0.2B 图像修复模型移植到浏览器 - 2026年6月22日
  • sqlite-utils 4.0rc1 新增迁移功能和嵌套事务 - 2026年6月21日

#primary

这是 Simon Willison 于 2026年7月2日发布的文章。

项目

542

AI

2,101

生成式AI

1,858

大语言模型

607

大语言模型工具使用

71

编程代理

217

Claude Code

120

Claude Mythos Fable

21

月度简报

每月赞助我10美元,即可获得精选的本月最重要的大语言模型发展摘要邮件。

支付我以减少邮件!

赞助并订阅

.metabox

#secondary

#wrapper

  • 披露信息
  • 附录
  • ©
  • 2002
  • 2003
  • 2004
  • 2005
  • 2006
  • 2007
  • 2008
  • 2009
  • 2010
  • 2011
  • 2012
  • 2013
  • 2014
  • 2015
  • 2016
  • 2017
  • 2018
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • 2026