实战指南:基于LangChain与FastAPI构建实时多工具AI智能体

构建一个可用于生产的、工具增强型 LLM Agent,使其具备 Token 流式输出、代码执行、搜索能力,并利用 FastAPI 实现高性能 API 服务。

实战指南:基于LangChain与FastAPI构建实时多工具AI智能体


ChatGPT 的出现带来了震撼的体验,但开发者很快开始思考:如何超越“聊天”本身?我们能否构建一个能够实时推理、联网搜索、执行代码、查询数据,并像人类打字一样流式响应的智能体?

答案是肯定的。通过结合 LangChainFastAPI,我构建了一个多工具 AI Agent。它能够协调调用浏览器、数据库、Python 解释器等外部工具,并以 Token 为单位实时流式生成内容。本文将详细拆解这一实战方案。


🛠️ 愿景:多工具 Agent 是 LLM 能力的延伸

大型语言模型擅长文本生成,但在“执行动作”方面存在局限。LangChain 的 AgentExecutor 为此提供了解决方案——它通过让模型调用各类“工具”来扩展其能力边界。需要实时信息?调用搜索 API。需要计算?启动代码解释器。需要查询数据?连接数据库。

然而,许多演示仅停留在“能运行”的阶段。我们的目标是构建一个能在生产环境稳定运行的系统,充分利用 FastAPI 的异步特性,并实现类似 ChatGPT 的 Token 级流式输出


🧱 核心技术栈

以下是构建此实时 Agent 的核心技术选型:

  • LangChain:负责 Agent 逻辑编排、提示词模板、记忆管理及工具链。
  • OpenAI GPT-4 / GPT-3.5:作为核心的推理与生成模型。
  • FastAPI:提供高效、异步的 HTTP API 服务。
  • AsyncLangChain + SSE:通过 Server-Sent Events 实现实时 Token 流式传输。
  • Python REPL Tool:在安全沙箱中执行 Python 代码。
  • Google Search Tool:基于 SerpAPI 获取最新网络信息。
  • PostgreSQL Tool:查询结构化数据库。

🧠 使用 LangChain 构建 Agent 核心

LangChain 提供了构建可推理、可调用工具的 Agent 所需的核心组件。其基本构建流程如下:

  1. 定义工具
    工具本质上是一个带有名称、描述和执行函数的 Python 包装器。例如,一个简单的代码执行工具:

    from langchain.agents import Tool

    def run_code(code: str) -> str:
    # 在沙箱中执行代码(生产环境需谨慎!)
    try:
    return str(eval(code))
    except Exception as e:
    return str(e)

    code_tool = Tool(
    name=”Python REPL”,
    func=run_code,
    description=”Executes Python code and returns the result”
    )

  2. 初始化 Agent
    使用 LangChain 的 initialize_agent() 函数,并选择如 chat-zero-shot-react-description 这类 Agent 类型,使模型能够自主选择工具并解释其推理步骤。

  3. 添加记忆(可选)
    可以使用 ConversationBufferMemory 来维持会话历史。对于规模化部署,可考虑替换为 Redis 等外部存储。

  4. 启用流式输出
    要实现按 Token 流式输出,需要将 AsyncIteratorCallbackHandler 这类流式处理器传递给 OpenAI LLM 实例。


🚀 使用 FastAPI 与 Server-Sent Events 提供流式 API

流式传输是提升 LLM 应用用户体验的关键。传统的“请求-等待-完整响应”模式体验不佳。

FastAPI 对 SSE(Server-Sent Events) 的良好支持,使其成为实现低延迟流式传输的理想选择。核心实现方式如下:

from fastapi import FastAPI
from sse_starlette.sse import EventSourceResponse

@app.get("/agent/stream")
async def stream_agent_response(query: str):
    async def event_generator():
        async for chunk in run_agent_stream(query):
            yield {"event": "message", "data": chunk}
    return EventSourceResponse(event_generator())

run_agent_stream() 函数会实时产生来自 LangChain Agent 的 Token 片段。前端可以像 OpenAI Playground 一样,逐词渲染响应内容。


🔍 工具集成:搜索、数据库与代码执行

🔎 网络搜索工具

为了让 Agent 能回答实时性问题,通过 LangChain 集成了 SerpAPI。这使得模型在缺乏知识时能够主动搜索网络。

from langchain.tools import Tool
from langchain.utilities import SerpAPIWrapper

search = SerpAPIWrapper()
search_tool = Tool(
    name="Google Search",
    func=search.run,
    description="Use this to look up current events or recent data"
)

📦 PostgreSQL 数据库工具

通过 LangChain 的 SQL Agent 连接 PostgreSQL 数据库,使模型能够查询产品信息、日志、分析数据等结构化内容。这对构建企业内部智能助手尤其有价值。

⚙️ 代码执行工具

为了安全地执行逻辑,我们构建了一个限制全局变量的最小化 Python REPL 沙箱。注意:生产环境中应避免直接使用 eval(),建议采用 Docker 容器隔离或使用专门的代码解释器 API。


🎯 最终效果:实时交互体验

当用户提出一个复杂请求时,例如:

“请总结这篇文章,计算每个段落的平均词数,并附上排名前三的来源链接。”

Agent 可能会执行以下操作:
1. 调用搜索工具查找文章。
2. 使用代码工具处理文本并计算。
3. 查询数据库核实来源信息。
4. 同时,将推理和生成的答案以 Token 流的形式实时推送到前端。

整个过程是“直播”进行的,用户可以看到 Agent 边思考、边行动、边回答,体验更接近与真人协作。


⚡ 关键实践经验

  • 流式传输至关重要:Token 级的流式输出能极大提升应用的响应速度和用户信任感。
  • LLM 需与工具结合:要超越纯文本生成,必须为其集成外部工具以执行具体任务。
  • LangChain 灵活但复杂:需要准备好处理和管理相对复杂的提示词与链式调用。
  • FastAPI 异步优势明显:其高性能和原生异步支持非常适合此类实时应用,SSE 集成顺畅。
  • 生产环境安全第一:在公开部署前,务必为 API 添加限流、完善的日志记录和监控。

📦 部署方案

可以使用 Docker 将服务容器化,通过 NGINX 作为反向代理,并部署到 RenderFly.io 等云平台。所有敏感信息(如 LLM API 密钥、数据库凭证)应通过环境变量或密钥管理服务安全存储。

前端可以采用 React 等框架,配合用于接收 SSE 的客户端库(如 EventSourceSWR),实现几乎无延迟的实时交互界面。


🗣️ 结语

这个项目标志着我们从“提示词工程”迈向了 工具编排 的新阶段。LLM 不再仅仅是内容生成器,而是能够驱动复杂工作流的智能决策中心。借助 LangChainFastAPI 以及精心挑选的工具集,你可以构建出真正能“行动”的智能体,而不仅仅是会“聊天”的机器人。


关注“鲸栖”小程序,掌握最新AI资讯

本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/13070

(0)
上一篇 2025年12月13日 上午8:45
下一篇 2025年12月13日 下午12:10

相关推荐

  • OpenAI核心工程师翁家翌深度揭秘:ChatGPT是意外引爆,Infra修Bug速度决定模型公司生死线

    “ChatGPT 并不是 OpenAI 精心策划出来的。” “Agent 和 RL 后训练本质上是一回事。” 在发布前,OpenAI 内部甚至做好了“几天后就关掉”的心理准备;最初的目标,只是收集一点真实用户数据。那时没有人预料到,它会在几天内引爆整个世界,更没人能提前画出那条指数级增长的曲线。 而这场“意外爆炸”的背后,其实只是来自一个12人的 “RL T…

    2026年1月23日
    9200
  • 上海云宇星空大模型:6000亿参数重构政务AI,从“能调图”到“敢决策”的深度革命

    当大模型能调图、会统计、会写报告,政务工作流正在被重构。 当下,政务大模型的落地路径,正在分化出两条截然不同的跑道:当不少地方政府选择以“轻量化”的方式,将通用模型快速接入政务系统时,上海市规划和自然资源局给出了一条更“重”、更深的路线。 近日,由上海市规划资源局与商汤大装置联合打造的全国规划资源领域首个基础大模型“云宇星空大模型”(专业版)上线。这并非一个…

    2025年12月25日
    11000
  • 从参数微调到任务重编程:揭秘神经网络可重编程性如何重塑大模型适配范式

    从模型重编程、参数高效微调,到大模型时代的提示调优、指令提示与上下文学习,研究者和从业者始终在探索一个核心问题:如何在尽量不修改模型参数的前提下,最大限度地复用预训练模型的能力? 过去几年,这类方法在不同研究社区中以相对独立的形式快速发展——有的源于对抗鲁棒性与迁移学习领域,有的专注于下游任务适配,有的则成为大模型对齐与应用的基础工具。然而,这些看似分散的技…

    2026年1月24日
    4000
  • 文心5.0正式版发布:2.4万亿参数原生全模态架构,登顶LMArena的“最强文科生”技术解析

    2.4万亿参数,原生全模态架构,在文本榜上“霸榜如喝水”。 在文心Moment大会上,文心大模型5.0正式版 上线。该模型参数量达2.4万亿,采用原生全模态统一建模技术,具备全模态理解与生成能力,支持文本、图像、音频、视频等多种信息的输入与输出。在40余项权威基准的综合评测中,文心5.0正式版的语言与多模态理解能力稳居国际第一梯队。其音频和视觉生成能力与垂直…

    2026年1月24日
    5900
  • 周末实战:5个能放进作品集的Agentic AI项目,助你求职脱颖而出

    人们常把“Agentic AI”描绘成只有大型实验室才能驾驭的高深技术。事实并非如此。 你完全可以在几天内,构建出真正能放进作品集的智能体项目。这些项目能解决实际问题,从而在求职时为你加分,而不是只会运行花哨提示词的玩具。 这里有五个你马上就可以动手实践的项目,即使你只有一台在卧室里、电量只剩一半的笔记本电脑。 我们将通过简单的示例逐一讲解,让你看清各个组件…

    2025年12月8日
    8500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注