动手实践 尽管AI智能体备受关注,但它们本质上只是另一种自动化形式,能够使用你提供的工具执行任务。你可以将它们视为能够做出决策的智能宏,超越简单的if/then规则来处理输入数据中的边缘情况。幸运的是,编写自己的智能体相当容易,下面我们将向你展示具体方法。
自2022年底ChatGPT首次亮相以来,已经涌现出数十种用于构建AI智能体的框架。其中,LangFlow是构建AI智能体较为简单和易于上手的平台之一。
LangFlow最初由Logspace开发,后被DATAStax收购,DataStax随后又被IBM收购。LangFlow是一个基于LangChain的低代码/无代码智能体构建器。该平台允许用户通过拖拽和连接各种组件和工具来组装大语言模型增强的自动化流程。
在这个实践指南中,我们将深入了解AI智能体是什么、如何构建它们,以及在此过程中可能遇到的一些陷阱。
智能体的核心组成
在开始构建我们的第一个智能体之前,让我们先了解智能体的组成部分。
一般来说,AI智能体有三个主要组成部分,不包括它们最终执行的输出/动作或启动整个过程的输入/触发器。
对于更复杂的多步骤任务,可能会使用多个模型、工具和系统提示。
部署LangFlow
如果你使用Mac或PC,部署LangFlow Desktop就像从LangFlow网站下载并运行安装程序一样简单。
如果你运行Linux系统,则需要将应用程序部署为Docker容器。值得庆幸的是,这比听起来容易得多。安装了最新版本的Docker Engine后,你可以使用以下一行命令启动LangFlow服务器:
几分钟后,LangFlow界面将在http://localhost:7860上可用。
警告:如果你在暴露于网络的服务器上部署Docker容器,请确保适当调整防火墙规则,否则可能会将LangFlow暴露给网络。
LangFlow界面介绍
打开LangFlow Desktop,你会看到应用程序分为两个部分:项目(Projects)和流程(Flows)。你可以将项目视为存储智能体的文件夹。
点击"新建流程"将为你提供各种预制模板以帮助你入门。
在LangFlow Desktop的左侧,我们看到一个包含各种第一方和第三方组件的侧边栏,我们将使用这些组件来组装智能体。
将这些组件拖到"游戏场"中,然后可以配置它们并将它们连接到智能体流程中的其他组件。
以这里显示的语言模型组件为例,你需要输入OpenAI API密钥并选择你偏好的GPT版本。同时,对于Ollama,你需要输入Ollama API URL(对大多数用户来说是http://localhost:11434),并从下拉菜单中选择一个模型。
实际应用案例
随着LangFlow的启动和运行,让我们看几个如何使用它的例子。如果你想亲自尝试这些例子,我们已经将模板上传到GitHub仓库中。
在这个例子中,我们构建了一个相对基础的智能体来分析存储为CSV的电子表格,基于用户提示进行分析。
为了帮助智能体理解文件的数据结构,我们使用了类型转换和DataFrame操作组件来提取数据集的架构,并帮助模型理解文件的内部结构。
这个信息,连同完整文档的文件路径,被传递给提示模板,该模板作为模型的系统提示。同时,用户提示作为指令传递给模型。
仔细查看提示模板,我们看到{DATA_HEADER}和{DATASET_FILEPATH}被定义为变量。通过将它们放在{}中,我们创建了额外的节点,可以连接我们的数据库架构和文件路径。
除此之外,系统提示包含关于如何为用户请求提供服务的基本信息,包括如何调用PYTHON_DATA_PLAYGROUND Python解释器的指令,我们在提示模板上方可以看到它。
这个Python解释器连接到模型的"工具"节点,除了将Pandas和Math库加入白名单外,我们没有改变解释器的标识符和描述以外的太多内容。
基于系统和用户提示中提供的信息,模型可以使用这个Python沙箱来执行代码片段并从数据集中提取见解。
如果我们在Langflow游戏场的聊天中询问智能体"我们卖了多少台显示器",我们可以看到模型使用Python解释器执行了什么代码片段以及它返回的原始响应。
显然,这引入了幻觉的风险,特别是在较小的模型上。在这个例子中,智能体被设置为分析它以前没有见过的文档。但是,如果你知道输入的样子——例如,如果架构在报告之间不发生变化——可以预处理数据,就像我们在下面的例子中所做的那样。
通过对Python解释器的一些调整,我们创建了一个自定义组件,使用Pandas将新电子表格与参考表进行比较。这样,模型只需要使用Python解释器来调查异常或回答预处理脚本尚未解决的问题。
最佳实践和注意事项
AI智能体只是自动化工具,理论上应该更好地处理边缘情况、模糊逻辑或格式不当的请求。
我们强调"理论上",因为大语言模型执行工具调用的过程有点像一个黑盒子。更重要的是,我们的测试表明,较小的模型更容易产生幻觉和格式错误的工具调用。
从本地托管的OpenAI的gpt-oss-120b切换到GPT-5 Nano或Mini,我们看到输出的质量和准确性有了显著改善。
如果你在智能体管道中难以获得可靠的结果,可能是因为模型不太适合这个角色。在某些情况下,可能需要专门为该应用程序微调模型。
除了模型之外,系统提示可能对智能体的性能产生重大影响。你可能给实习生的关于如何执行任务的相同书面指令和示例,对于指导模型你想要和不想要的输出同样有用。
在某些情况下,将任务分解并委托给不同的模型或系统提示可能更有意义,以便最小化每个任务的复杂性,减少幻觉的可能性,或通过让成本较低的模型处理管道中较容易的部分来优化成本。
扩展应用场景
到目前为止,我们的例子都是由聊天输入触发并返回聊天输出的。但是,这不是严格要求的。你可以设置智能体来检测目录中的新文件,处理它们,并将其输出保存为文件。
LangFlow支持与各种服务的集成,这些服务可以使用智能体协议或用Python编写的自定义组件进行扩展。如果你想构建一个智能体来自动化你的智能家居灯光和设备,甚至还有Home Assistant集成。
说到第三方集成,我们几乎没有涉及使用LangFlow等框架可能实现的AI增强自动化的种类。除了我们在这里看到的例子外,我们强烈建议查看LangFlow的模板和工作流程集合。
完成后,你可能想探索使用模型上下文协议(MCP)等框架的可能性。MCP最初由Anthropic开发,这个智能体协议旨在帮助开发者将模型连接到数据和工具。
同时,你可能还想了解智能体AI的安全影响,包括提示注入或远程代码执行等威胁,并确保在生产中部署之前你的环境得到充分的沙箱保护。
Q&A
Q1:LangFlow是什么平台?
A:LangFlow是一个基于LangChain的低代码/无代码智能体构建器,最初由Logspace开发,后被DataStax收购。该平台允许用户通过拖拽和连接各种组件和工具来组装大语言模型增强的自动化流程。
Q2:AI智能体主要由哪些组件构成?
A:AI智能体一般有三个主要组成部分,不包括它们最终执行的输出/动作或启动整个过程的输入/触发器。对于更复杂的多步骤任务,可能会使用多个模型、工具和系统提示。
Q3:如何提高AI智能体的准确性和可靠性?
A:可以从几个方面改善:选择合适的模型(较大的模型通常表现更好),优化系统提示(提供清晰的指令和示例),将复杂任务分解为更简单的子任务,以及在必要时对特定应用进行模型微调。
热门跟贴