用途:针对 LangChain 1.0 / LangGraph 1.0 的 Python 链与智能体做生产级性能调优,解决批处理默认串行、异步阻塞、缓存命中率低、会话历史丢失、连接泄漏、流式输出错误等常见问题。
主要能力:为 .abatch/.batch 显式设置 config={"max_concurrency": N};将热路径改为 ainvoke、astream_events(version="v2")、abatch、aget_relevant_documents、tool.arun;用 astream_events 测量 TTFT,仅在 on_chat_model_end 读取 usage_metadata;接入 RedisCache/SQLiteCache 精确缓存并设 TTL;用黄金集调优 RedisSemanticCache 阈值(默认 0.95 命中率常低于 5%,通常调至 0.85-0.90);用 RedisChatMessageHistory 或 LangGraph checkpointer 替换 InMemoryChatMessageHistory;在 FastAPI lifespan 中关闭向量库连接池;用 SSE 而非 BackgroundTasks 推送 token。
使用方式:先建立延迟预算与基线(TTFT、p95、吞吐、成本),按顺序逐项修改并复测:设置 max_concurrency、加精确缓存、调语义缓存阈值、验证历史持久化。示例命令:await chain.abatch(inputs, config={"max_concurrency": 10})。
适用场景:FastAPI/Starlette 异步服务、多用户聊天、批量 LLM 调用、RAG 检索与流式 SSE 接口。
限制:需 Python 3.11+、langchain>=1.0,<2、langgraph>=1.0,<2、Redis 7+ 及可观测性设施;max_concurrency 仅作用于单进程,多 worker 需代理或 Redis 信号量;语义缓存不适用于 temperature>0;并发上限与吞吐数字为起始参考,需在自有账号验证。