猕猴桃 2024-07-08 11:37 湖北
嘿,大家好!这里是一个专注于AI智能体的频道!今天我想聊聊过去一年里,我在构建AI智能体(Agent)方面的
嘿,大家好!这里是一个专注于AI智能体的频道!
今天我想聊聊过去一年里,我在构建AI智能体(Agent)方面的一些心得体会。这是一段过山车般的经历,从最初的原型激动人心,到产品上线时的期待,再到面对现实世界各种场景时的挣扎,最后是看到我们的AI智能体在不同数据源和业务中稳定运行时的自豪感。
首先,什么是AI智能体?简单来说,它就是一个可以接受指令、使用多种工具,并能自主推理决定如何使用这些工具来完成任务的智能体。就像OpenAI的GPTs或Assistants,或者是Anthropic的Claude,Cohere的Command R+等,都可以作为构建智能体的模型。
构建一个AI智能体其实不需要太多代码,只需要一些能够启动对话、调用模型、处理工具调用,并在完成任务后停止的循环代码。想象一下,你告诉智能体一个目标,它就会开始“思考”,决定下一步该怎么做。
在这一年的实践中,我学到了不少东西。比如,推理能力比知识本身更重要。就像写SQL查询一样,失败是常态。所以,我们不应该期望智能体一次就能给出正确答案,而是要让它在失败时能够理解错误,获取上下文信息,并尝试解决问题。
又比如,改进智能体与计算机交互是提升性能的关键。ACI包括智能体生成的输入和API返回的输出的确切语法和结构。不同的底层模型(比如gpt-4o、Claude Opus等)需要不同的ACI,这就需要我们在设计时既要有科学依据,也要有艺术感。(ACI是一个新词,在SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering的研究中提出)
另外,智能体的性能受限于其底层模型。如果模型本身决策能力不强,那么无论智能体看起来多么高大上,用户都不会满意。我们曾测试过gpt-3.5-turbo和gpt-4–32k,发现在复杂任务上,gpt-4的表现要远远好于gpt-3.5。
很多时候可能会想要对模型进行微调,以期望它能在特定应用上表现得更好。但根据我的经验,这其实是个坑。微调模型可能会让智能体在特定任务上表现得更像一个“专家”,但它的推理能力反而会下降。因为智能体可能会过分依赖微调时学到的特定例子,而不是独立地去推理问题。
还有,对于系统构建来说,最好不要使用像LangChain和LlamaIndex这样的抽象层。你需要完全掌控每一次模型调用的输入和输出。如果你把这些外包给第三方库,将来在用户引导、问题调试、扩展用户、日志记录、升级版本或理解智能体行为原因时,你会后悔的。
最后,我想说的是,尽管构建一个好的智能体系统是一个巨大的机会,但这还不够。为了让智能体真正为用户所用,还需要在安全、数据连接器、用户界面、长期记忆和评估等方面进行大量非AI组件的投资。这些才是你可以创造竞争优势的地方。
好了,这就是我今天想分享的内容。如果你对构建AI智能体感兴趣,别忘了点赞、关注噢~