构建我的第一个 AI 代理

发布: (2026年2月12日 GMT+8 05:44)
5 分钟阅读
原文: Dev.to

Source: Dev.to

介绍

AI 代理在当今科技领域日益突出,并且这种势头没有放缓的迹象。它们已经成为全球技术知识工作者工作流的不可或缺的一部分,仅用了几个月的时间就达到了这一地位。

我最近跟随了我最喜欢的作者之一 Thorsten Ball 的教程,该教程提供了构建自己的 AI 代理的路线图。我被这篇教程吸引的原因有几方面:扩展我对这些工具的了解、使用我喜欢但在日常工作中很少用到的 Go 语言,以及信任 Thorsten 对密集概念的清晰解释。

下面是我构建编码代理的高层概览,以及关键收获。

项目搭建

  1. 项目脚手架 – 创建了常规的 Go 项目文件,包括 main.go

  2. Anthropic SDK – 添加了 Anthropic SDK 并定义了一个带有 NewAgent 构造函数的 Agent 类型,该构造函数接受:

    • 一个 Anthropic 客户端
    • 一个 getUserMessage 函数

    该类型和构造函数已在 main.go 中接入。

  3. API 密钥 – 填入我的 Anthropic API 密钥,并实现了一个接受 context 和对话切片的 run 函数。

  4. 首次运行 – 在接入密钥和 run 函数后,我可以在终端运行 Claude。它向我问好:

    “Chat with Boris, slug head”

    (向 GoldenEye N64 游戏致敬)。

创建代理包装器

仅仅在本地包装一个 LLM 本身已经很有用,但一个可用的编码代理需要执行几项标准操作:

  • 读取文件:在工作目录中读取文件
  • 列出文件:列出该目录下的文件
  • 编辑文件:在工作目录中编辑文件

这些操作遵循相同的模式:

  1. 为精确的输入输出定义严格的模式(schema)。
  2. 使用 JSON 编解码来打包/解包数据。
  3. 在主可执行文件中注册工具的命名空间(readwritelist)。

将这三个“行动支柱”整合后,我的代理——GoldenEye——能够以类似我在工作和家庭中使用的代理方式运行。

实现文件操作

教程中关于文件操作的章节是最具挑战性的,但其核心过程可以归结为:

  • 模式定义 – 为每个操作提供明确的 JSON 结构。
  • JSON 处理 – 一致的序列化/反序列化,以确保数据流正确。
  • 命名空间注册 – 将每个工具添加到代理的工具箱,以便在对话期间调用。

当这些工作完成后,GoldenEye 就可以按需读取、列出和编辑文件。

收获

  • 上下文为王 – 提供清晰、明确的提示(例如 read_file({path: "main.go"}))显著提升代理按预期行动的能力。
  • 接线的简易性 – 将模型本地连接到代码相对直接;真正的区别在于:
    • 底层模型的质量和相关性。
    • 用户体验,包括 UI 设计和性能。
  • 代理循环基本解决 – 大部分繁重工作已经完成;剩余的关键在于你如何呈现工具并管理上下文。
  • 未来关注点 – 我渴望探索下一层抽象:驱动这些代理的模型。了解它们的架构和能力将加深我对 AI 智能的认识。

参考资料

  • How to Build an Agent by Thorsten Ball – 启发本工作的教程
  • Anthropic API 文档
  • GoldenEye 仓库 – 我的实现
0 浏览
Back to Blog

相关文章

阅读更多 »