开发者生态
morning
毕加索教我如何构建人工智能代理
2026-11-16
1 阅读
约5分钟阅读
mathaix
字号:
伟大的大师巴勃罗·毕加索有句名言:“我花了四年的时间才能像拉斐尔一样画画,但却用一生的时间才能像孩子一样画画。”他的作品《公牛》完美地捕捉到了这一点。在 11 次迭代中,毕加索逐渐去除了公牛的细节,直到只剩下几行。然而公牛是毫无疑问的。在我学习构建人工智能代理的过程中,我能体会到这一点。一切又回到了原点。像许多工程师一样,我从抽象和复杂的软件系统开始。框架、编排引擎、多代理架构、状态机、向量数据库、内存系统和复杂的规划机制。在这趟旅程中,我迷失了情节。我将技术置于问题之上。我的自尊心妨碍了我。我试图在人工智能时代保持作为一名工程师的地位。我混淆了操作代理所需的基础设施与构建有用的代理所需的基础设施。我尝试的越多,我发现自己剥离的东西就越多。模型变得越来越好。只需一个提示即可完成更多操作。但这还不是故事的全部。我把事情过于复杂化了。创建代理所需的只是一个包含 Markdown 文件的文件夹。说明、上下文和可重复使用的技能。访问工具。一种调用代理、验证结果并合并反馈的方法。其中大部分只需与克劳德聊天即可设置。这就是我现在的工作流程。我打开我的终端。 mkdir my_awesome_agent cd my_awesome_agent claude 并开始对话。 “Claude,我想构建一个执行 XYZ 功能的代理。帮我初始化它。创建一个 AGENTS.md,让我们弄清楚它还需要什么。”这里有一个重要的区别。克劳德本身就是一个代理,特别是编码代理。有些人使用“harness”一词。我正在使用通用编码代理来创建专用编码代理。为清楚起见,Claude 可以是任何编码代理:Gemini、Codex 或 pi。更重要的是说明和上下文。我并不是从头开始构建智能。我正在定义现有情报应如何执行特定工作。我和克劳德一起解决了几个问题。这个代理应该完成什么任务?实际工作是什么?不是使用什么框架,除非你正在创建一个框架。成功是什么样的?代理人可以独立做出哪些决定?未经许可,它绝对不能做什么?它需要什么技能?技能是可以重复使用和重新混合的专门指令。互联网上有很多优秀的例子。借用它们、改编它们、组合它们,或者要求克劳德创造新的。通常,技能只是一个带有说明和可能一些支持资源的 Markdown 文件。它需要什么背景?代理将需要上下文:您的业务是什么、您的客户是谁、您的代码库如何工作或一些特定领域的知识。这些都可以作为 Markdown 文件存在于文件夹中。需要时可以检索一些上下文。有些来自对话本身。您并不自动需要矢量数据库或复杂的内存架构。它需要什么工具?为了执行工作,代理需要工具。也许它需要搜索网络、读取数据库、调用 API、执行脚本或与浏览器交互。引入工具就像启用插件或添加 MCP 连接器一样简单。我请克劳德帮助确定完成任务所需的最小工具集。甚至可以通过代理编写和调用代码来动态创建工具。代理还可以在互联网上找到工具并安装它们。代理如何被调用?为了使代理发挥作用,需要将其作为工作流程的一部分进行调用,无论是通过 cron 作业、Webhook 事件还是其他程序。简单性在于包装。带有说明的文件夹是一个干净的可部署单元。它可以被版本控制、复制并嵌入到其他流程中。有了 Claude 以及所需的工具和凭据,就可以使用 -p 标志来无头调用它: cd my_awesome_agent claude -p "Do Awesome stuff" 无头意味着没有交互式聊天。克劳德收到任务,在代理的文件夹中工作,打印结果,然后退出。脚本可以传入任务并收集输出。对于无人值守的工作,我提前配置了工具权限。 Claude 还可以返回结构化 JSON 供另一个程序使用。 Anthropic 关于无头执行的文档涵盖了命令和配置。当代理启动时,它需要知道在哪里可以找到它的指令,它收到了什么输入,以及是否应该恢复之前的工作。调用机制可以改变,而不会改变代理的基本目的。此设置可以部署在远程虚拟机上,使用触发代理的钩子和提供对调用它的服务的访问的隧道。 Webhook 通过隧道到达虚拟机。本地 cron 作业可以按计划调用代理。这个代理可以
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱