
AI代理的消费方式:独立应用、业务触发与嵌入现有系统构建完成的AI代理需要以合适的方式服务于终端用户。常见的消费方式有三种:独立应用:代理作为一个独立运行的应用程序,用户直接与之交互。业务触发:代理通过API或事件被其他系统调用,执行特定任务后返回结果。嵌入现有系统:将代理能力以聊天界面或其他UI组件的形式嵌入到已有应用(如移动App、Web应用)中。本文聚焦第三种方式,展示如何将LangChain构建的AskMamma代理嵌入到Streamlit构建的移动版UI中。Streamlit作为Python生态中广受欢迎的Web应用框架,可以快速将数据科学原型转化为交互式应用,尤其适合AI Agent的展示和测试。选型理由:为什么是Streamlit + LangChainStreamlit提供了一组简洁的组件,可以轻松构建聊天界面、展示数据并处理用户输入;LangChain则提供了Agent、工具、记忆、回调等核心抽象。二者结合,可以快速搭建一个具备完整对话能力的AI代理前端,并且支持将Agent的推理过程透明地展示给用户。在AskMamma项目中,后端Agent通过LangChain编排,前端使用Streamlit吸附,二者之间通过标准Python调用和回调机制通信,无需复杂API部署,极大降低了开发门槛。构建AskMamma Agent的核心组件AskMamma是一个面向意大利餐馆Mammachepiada的电商AI助手。其核心组件包括:LLM:Azure OpenAI GPT-4o(也可替换为Hugging Face模型)系统消息:将代理设定为友好、懂行的餐馆助手记忆:使用短期记忆维持对话上下文工具集:SQL数据库工具:查询商品库存、价格、供应商等信息Add-to-Cart工具:通过HTTP POST将商品加入用户购物车RAG工具:基于向量检索的文档查询(如食品安全证书、餐厅获奖记录)以下代码片段展示了工具的初始化:fromlangchain_community.utilities.sql_databaseimportSQLDatabasefromlangchain_community.agent_toolkits.sql.toolkitimportSQLDatabaseToolkit db=SQLDatabase