LangGraph+FastAPI+Streamlit最佳实践:agent-service-toolkit开发指南
你是否还在为构建AI智能体服务而烦恼?从 agent(智能体)定义到用户界面,每个环节都需要精心设计。本文将带你一文掌握基于LangGraph、FastAPI和Streamlit的agent-service-toolkit全栈开发框架,让你轻松构建企业级AI智能体服务。读完本文,你将能够:快速搭建完整的AI智能体服务架构,自定义多类型智能体,实现流式响应与前端交互,以及掌握Docker化部署与开发最佳实践。
架构概览:三驾马车驱动AI智能体服务
agent-service-toolkit采用现代化的三层架构,将LangGraph的智能体编排能力、FastAPI的高性能API服务和Streamlit的交互式界面完美结合。
核心组件包括:
- 智能体层:基于LangGraph构建的多类型智能体,支持工具调用、中断恢复和长期记忆
- 服务层:FastAPI实现的RESTful API,提供智能体调用、流式响应和状态管理
- 界面层:Streamlit构建的用户友好交互界面,支持多轮对话和历史记录
项目目录结构清晰,主要文件如下:
- src/agents/:智能体定义目录,包含各类智能体实现
- src/service/service.py:FastAPI服务实现
- src/streamlit_app.py:Streamlit前端应用
- src/core/:核心模块,包括LLM配置和设置管理
快速上手:5分钟启动服务
环境准备
首先克隆仓库并配置环境变量:
git clone https://gitcode.com/GitHub_Trending/ag/agent-service-toolkit.git
cd agent-service-toolkit
echo 'OPENAI_API_KEY=your_openai_api_key' >> .env
使用Python直接运行
推荐使用uv进行依赖管理:
# 安装uv
curl -LsSf https://astral.sh/uv/0.7.19/install.sh | sh
# 安装依赖并创建虚拟环境
uv sync --frozen
source .venv/bin/activate
# 启动FastAPI服务
python src/run_service.py
# 在另一个终端启动Streamlit应用
streamlit run src/streamlit_app.py
使用Docker一键部署
Docker Compose配置已预先准备好,支持代码热重载:
# 创建环境变量文件
cp .env.example .env
# 编辑.env文件添加API密钥
# 启动服务
docker compose watch
服务启动后,访问http://localhost:8501即可看到Streamlit应用界面:
核心功能解析
多智能体架构设计
框架支持多种智能体类型,通过统一接口进行管理和调用。系统默认提供研究助手、聊天机器人等智能体,位于src/agents/目录。
主要智能体类型:
- ResearchAssistant:具备网络搜索和信息分析能力的研究助手
- Chatbot:基础对话智能体,适合日常交互
- RAGAssistant:支持检索增强生成的智能体,可连接外部知识库
智能体加载和管理逻辑在src/agents/agents.py中实现,通过get_agent()函数可获取指定智能体实例。
高级流式响应实现
FastAPI服务层实现了高效的流式响应机制,支持两种流模式:消息流和令牌流。核心实现在src/service/service.py的message_generator()函数中。
async def message_generator(user_input: StreamInput, agent_id: str = DEFAULT_AGENT) -> AsyncGenerator[str, None]:
agent: AgentGraph = get_agent(agent_id)
kwargs, run_id = await _handle_input(user_input, agent)
try:
async for stream_event in agent.astream(**kwargs, stream_mode=["updates", "messages", "custom"], subgraphs=True):
# 处理流事件并生成响应
# ...
yield f"data: {json.dumps({'type': 'token', 'content': chunk})}\n\n"
finally:
yield "data: [DONE]\n\n"
这种实现支持:
- 实时令牌流输出,提升用户体验
- 中间消息和工具调用结果的实时反馈
- 智能体中断恢复机制
记忆管理系统
框架提供完善的记忆管理功能,分为短期对话记忆和长期知识记忆:
- 短期记忆:使用数据库存储对话历史,支持多轮对话
- 长期记忆:通过Store组件实现跨对话知识持久化
相关实现位于src/memory/目录,支持PostgreSQL、MongoDB和SQLite等多种存储后端。
自定义开发:构建专属智能体
创建新智能体
- 在src/agents/目录下创建新的智能体文件,例如
my_agent.py - 继承基础智能体类并实现自定义逻辑
- 在src/agents/agents.py中注册新智能体:
from agents.my_agent import MyAgent
agents = {
# ... 现有智能体
"my_agent": AgentInfo(
key="my_agent",
name="My Custom Agent",
description="A custom agent with special capabilities",
agent=MyAgent,
),
}
集成外部工具
智能体可以集成各种外部工具,例如:
from langchain.agents import Tool
from langchain.utilities import SerpAPIWrapper
search = SerpAPIWrapper()
tools = [
Tool(
name="Search",
func=search.run,
description="Useful for when you need to answer questions about current events"
)
]
class MyAgent(AgentGraph):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.tools = tools
# 设置工具调用链
前端界面定制
修改src/streamlit_app.py以适配新智能体的功能:
# 添加新智能体选择
agent_options = ["default", "research_assistant", "my_agent"]
selected_agent = st.sidebar.selectbox("Select Agent", agent_options)
# 根据智能体类型调整UI元素
if selected_agent == "my_agent":
st.sidebar.markdown("My Agent specific options:")
# 添加自定义控件
部署与扩展
Docker部署最佳实践
项目提供完整的Docker配置,支持开发和生产环境:
- docker/Dockerfile.app:Streamlit应用镜像
- docker/Dockerfile.service:FastAPI服务镜像
- compose.yaml:多服务编排配置
使用Docker Compose启动完整服务栈:
docker compose up -d
性能优化建议
1.** 启用连接池 :优化数据库连接管理 2. 配置缓存 :对频繁访问的资源启用缓存 3. 异步处理 :利用FastAPI的异步能力处理并发请求 4. 模型选择 **:根据任务需求选择合适的LLM模型
监控与日志
- 集成LangSmith进行智能体追踪:https://smith.langchain.com/
- 配置日志级别:在src/core/settings.py中调整日志配置
- 健康检查端点:http://localhost:8080/health
实战案例:构建企业知识库助手
以RAG(检索增强生成)智能体为例,展示如何利用agent-service-toolkit构建实用AI应用:
1.** 准备知识库 **:
# 创建向量数据库
python scripts/create_chroma_db.py --data_path ./docs
2.** 配置RAG智能体 **: 参考docs/RAG_Assistant.md文档配置检索增强功能
3.** 启动服务并测试 **:
python src/run_service.py
streamlit run src/streamlit_app.py
这个RAG助手可以回答关于项目文档的问题,提供准确的信息检索和生成能力。
总结与展望
agent-service-toolkit提供了一个功能完备、易于扩展的AI智能体开发框架。通过LangGraph、FastAPI和Streamlit的强强联合,开发者可以快速构建和部署高质量的AI智能体服务。
框架当前支持的高级特性包括:
- 多智能体管理与调度
- 灵活的记忆系统
- 高效的流式响应
- 完善的部署选项
未来发展方向:
- 增强多模态能力
- 优化智能体协作机制
- 扩展更多工具集成
- 改进性能监控与分析
通过本文的指南,你已经掌握了agent-service-toolkit的核心功能和开发方法。现在就开始构建你的第一个AI智能体服务吧!
点赞+收藏+关注,获取更多AI开发最佳实践!下期预告:《LangGraph高级编排技巧》
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





