已加载全部内容

如何从零搭建一个 Coding Agent

链接
分类
文章开发AI2025-06-26 09:32:47
简介

只需不到 400 行代码,快来试试吧(?)

相似条目

笔记

Beta

Claude 3.7 Sonnet 是文中使用的具体模型(ModelClaude3_7SonnetLatest)。它在 runInference 中被调用,负责理解用户指令并决定何时使用工具。实验显示该模型能自主规划 list_files、read_file、edit_file 等操作,完成从创建 fizzbuzz.js 到修改代码的完整任务,证明其工具使用能力已足够支撑实用代理。

Anthropic Go SDK 是文章中导入的 github.com/anthropics/anthropic-sdk-go 库。它封装了客户端初始化、消息构造、工具参数传递与 tool_use 响应解析等功能。代码通过该 SDK 将工具定义发送给模型,并处理返回结果,使 Go 程序能与 Claude 实现双向交互和工具执行闭环。

本文将 AI Agent 定义为带工具访问能力的 LLM 加循环结构。作者在 190 行左右代码中实现了支持文件读写编辑的终端代理,它通过对话维护、工具结果回传,让模型自主完成目录浏览、代码生成与修改。文章用实际运行示例证明,简单实现即可产生“会编辑代码”的实用代理效果。

Tool Use 是本文核心机制,指模型主动请求外部操作。文章依次实现了 read_file、list_files、edit_file 三个工具,每个工具包含名称、描述、JSON Schema 与执行函数。Run 方法检测 tool_use 类型后调用 executeTool 并把结果返回模型,形成“请求-执行-反馈”闭环,使代理能真正修改文件系统内容。

本文中JSON Schema用于为工具定义输入结构。通过GenerateSchema函数,基于Go结构体(如ReadFileInput、EditFileInput)生成schema,传递给Anthropic模型,使Claude能正确构造工具调用参数并执行read_file、list_files和edit_file等操作。

文章通过示例展示agent能力:Claude创建fizzbuzz.js文件后,提示用户用Node.js运行node fizzbuzz.js验证输出;同样用于执行congrats.js,展示代码编辑agent可生成并测试可运行的JavaScript程序。

本文中agent使用edit_file工具生成JavaScript文件,包括实现FizzBuzz逻辑的fizzbuzz.js(支持1-15或1-100循环输出)和包含rot13Decode函数的congrats.js,解码指定字符串后打印结果,验证工具调用与文件修改效果。

本文中 Go 是构建代码编辑代理的编程语言。作者通过四个命令初始化 Go 项目,在 main.go 中实现 Agent 结构体、对话循环与工具调用逻辑,总代码量不足 400 行。Go 结合标准库和外部 SDK,完成了从用户输入到模型推理再到文件操作的完整流程,展示了用少量代码即可实现功能性代理的可行性。

该分类暂无内容
该分类暂无内容
该分类暂无内容

Anthropic 是提供 Claude 模型与 API 的公司。本文要求用户从其控制台获取 API Key 并设为环境变量,代码通过其 SDK 与服务端通信。文章强调 Anthropic 的工具调用机制让模型能主动请求文件读写,从而实现代理的外部操作能力。