AI Agent流式响应:让Agent边思考边输出,用户不用干等
🩺 摘要
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())
用户感知优化
- 即时反馈:收到请求立刻返回"正在处理",不要让用户等
- 中间结果:每步工具调用都展示给用户
- 进度条:如果知道总步数,展示进度
总结
流式响应不改变Agent的逻辑,只改变展示方式。但用户感知到的速度提升了3倍以上。
💬 评论 (0)