AI Agent流式响应:让Agent边思考边输出,用户不用干等

📘 AI教程 💬 🔥 Trending

🩺 摘要

Agent执行任务可能花10秒以上,用户傻等体验很差。流式响应让Agent边思考边输出中间结果,用户体验好很多。

📝 详情

为什么需要流式响应?

Agent执行一个任务可能叫3-4个工具,每个工具调用1-3秒。加起来10秒以上。用户盯着空白屏幕看10秒——流失率很高。

实现流式响应

from fastapi import FastAPI
from sse_starlette.sse import EventSourceResponse

app = FastAPI()

@app.get("/agent/chat")
async def chat(message: str):
    async def event_stream():
        yield {"data": "正在理解你的问题..."}
        result1 = await call_tool_1()
        yield {"data": f"查到信息:{result1}"}
        result2 = await call_tool_2(result1)
        yield {"data": f"最终结果:{result2}"}
    return EventSourceResponse(event_stream())

用户感知优化

  1. 即时反馈:收到请求立刻返回"正在处理",不要让用户等
  2. 中间结果:每步工具调用都展示给用户
  3. 进度条:如果知道总步数,展示进度

总结

流式响应不改变Agent的逻辑,只改变展示方式。但用户感知到的速度提升了3倍以上。