文章摘要
文章介绍了一个关于如何构建编码代理的免费工作坊,该工作坊已在两次会议上进行过展示。作者提供了工作坊的材料和源代码,并邀请有兴趣的雇主联系以举办类似活动。工作坊旨在深入解析编码代理的内部运作,帮助参与者理解并构建自己的编码代理。
文章总结
如何构建一个编程助手:免费工作坊
在2025年8月24日,Geoffrey Huntley发布了一篇关于如何构建编程助手的文章,并提供了一个免费的工作坊。该工作坊已经在两个会议上进行了展示,旨在帮助参与者理解并构建自己的编程助手,类似于Roo Code、Cline、Amp、Cursor、Windsurf或OpenCode等工具。
主要内容:
编程助手的基本概念
编程助手(Coding Agent)是一种能够自动化编程任务的工具。尽管“助手”一词被广泛使用,但很多人并不清楚其内部工作原理。通过学习如何构建编程助手,你可以从AI的消费者转变为AI的生产者,掌握自动化技术的基础。构建编程助手的简单性
构建一个编程助手并不复杂,只需要300行代码,这些代码在一个循环中运行,并通过LLM(大语言模型)的token进行驱动。你只需要不断向循环中注入token,就能创建一个助手。工作坊的实时演示
在工作坊中,Geoffrey Huntley将实时演示如何构建一个编程助手,并解释其工作原理。通过这种方式,参与者可以直观地理解助手的构建过程。编程助手的核心功能
编程助手的核心功能包括:- 读取文件:读取文件内容并将其加载到上下文窗口中。
- 列出文件:列出指定路径下的所有文件和目录。
- 执行Bash命令:在计算机上执行Bash命令并返回结果。
- 编辑文件:根据推理结果对文件进行编辑。
- 代码搜索:使用ripgrep工具搜索代码模式。
LLM的选择与使用
并非所有的LLM都适合构建编程助手。Geoffrey Huntley建议选择具有高度“工具调用”能力的模型,如Claude Sonnet或Kimi K2。这些模型被训练为专注于执行工具调用,类似于松鼠追逐坚果的行为。上下文窗口的管理
上下文窗口的大小有限,因此在使用编程助手时,应确保每次活动后清除上下文窗口,以避免信息混乱。编程助手的未来
随着AI技术的快速发展,编程助手已经成为技术行业中的一项基本技能。掌握如何构建编程助手,不仅能够提升个人能力,还能在就业市场中占据优势。
总结:
通过这个工作坊,参与者可以学习到如何构建一个简单的编程助手,并理解其背后的基本原理。Geoffrey Huntley鼓励大家积极投资于个人发展,掌握AI技术,以应对未来的职业挑战。
如果你对这个工作坊感兴趣,可以通过GitHub获取相关材料和源代码。
评论总结
对现有编码代理的认可与展示
- 评论1展示了Princeton SWE-bench团队开发的编码代理,代码简洁且表现良好。
- 引用:“We (the Princeton SWE-bench team) built an agent in ~100 lines of code that does pretty well on SWE-bench.”
- 引用:“https://github.com/SWE-agent/mini-swe-agent”
对编码代理局限性的批评
- 评论2指出,现有代理在处理旧代码库时可能表现不佳,且消耗大量token。
- 引用:“now build it for old codebase, let's see how precisely it edits or removes features without breaking the whole codebase.”
- 引用:“lets see how many tokens it consumes per bug fix or feature addition.”
对CLI编码代理未来发展的质疑
- 评论3认为,当前CLI编码代理过于简单,容易出错,未来应转向更复杂的仪表盘/HUD界面。
- 引用:“I really think the current trend of CLI coding agents isn't going to be the future.”
- 引用:“The future of agents is that multiple of them will be working at once on the codebase.”
对程序合成的期待
- 评论4提出,模型应能够根据给定的工具构建并返回可执行的程序。
- 引用:“Where is the program synthesis? My way of thinking is given primitives as tools, i want the model to construct and return the program to execute.”
对工具必要性的质疑
- 评论5质疑,许多功能是否可以通过bash实现,而不需要额外的工具。
- 引用:“Why are any of the tools beyond the bash tool required?”
- 引用:“Surely listing files, searching a repo, editing a file can all be achieved with bash?”