agent-service-toolkit

GitHub
4.2k 691 简单 2 次阅读 昨天MITAgent
AI 解读 由 AI 自动生成,仅供参考

agent-service-toolkit 是一个基于 LangGraph、FastAPI 和 Streamlit 构建的完整 AI 智能体服务套件。它为开发者提供了一套从后端服务到前端交互界面的开箱即用模板,涵盖智能体定义、API 服务及用户聊天界面等核心组件。针对搭建 LangGraph 项目时环境配置繁琐、前后端对接困难等痛点,它通过标准化流程简化了从智能体定义到用户交互的全链路搭建工作。

这套方案特别适合希望快速验证 AI 智能体想法的开发者,以及对 LangGraph 框架感兴趣的技术研究人员。技术上,它支持最新的 LangGraph v1.0 特性,包括人工介入流程、状态控制与长期记忆存储。此外,还实现了先进的 Token 级流式输出,支持语音交互,并集成了内容审核与 LangSmith 反馈机制。配合 Docker 支持,用户能够轻松部署自己的智能体服务,无需重复造轮子,即可体验完整的 AI 应用架构。

使用场景

某电商团队计划构建一个内部售后助手,需同时支持多轮对话、知识库检索及人工审核流程。

没有 agent-service-toolkit 时

  • 团队需从零编写 FastAPI 后端与 Streamlit 前端,耗时数周才能打通基础链路。
  • 实现 Token 级流式输出和语音交互需深度定制代码,调试困难且稳定性差。
  • 缺乏标准化的 Agent 状态管理,导致多轮对话上下文丢失或记忆混乱。
  • 后续扩展新 Agent 类型时,需重复搭建整套服务架构,维护成本极高。

使用 agent-service-toolkit 后

  • 直接复用其封装好的服务架构,一天内即可部署包含聊天界面的完整应用。
  • 内置的高级流式传输方案自动处理消息分片,语音输入输出配置简单可靠。
  • 利用 LangGraph 的 Store 和 interrupt 功能,轻松实现长期记忆存储与人工介入审核。
  • 通过 URL 路径即可调用不同 Agent,无需修改核心代码即可支持多任务并行。

通过整合全栈组件,agent-service-toolkit 显著降低了 AI 应用落地的工程门槛。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes至少需要一个 LLM API 密钥(如 OPENAI_API_KEY);推荐使用 Docker Compose (>= v2.23.0) 进行开发部署;依赖管理建议使用 uv;支持 LangGraph Studio 调试;本地运行需激活虚拟环境。
python未说明
LangGraph
FastAPI
Streamlit
Pydantic
ChromaDB
uv
pytest
langgraph-cli
agent-service-toolkit hero image

快速开始

🧰 AI Agent 服务工具包

build status codecov Python Version GitHub License Streamlit App

一个用于运行 AI 代理服务的完整工具包,基于 LangGraph、FastAPI 和 Streamlit 构建。

它包含一个 LangGraph 代理,一个用于托管它的 FastAPI 服务,一个用于与服务交互的客户端,以及一个使用客户端提供聊天界面的 Streamlit 应用。数据结构和设置基于 Pydantic 构建。

本项目为您提供了一个模板,让您能够轻松构建和运行自己的代理,使用 LangGraph 框架。它展示了从代理定义到用户界面的完整设置,通过提供一个全面、强大的工具包,使开始基于 LangGraph 的项目变得更加容易。

🎥 观看仓库和应用的视频指南

概述

尝试应用!

快速开始

直接在 Python 中运行

# 至少需要一个大语言模型 (LLM) API 密钥
echo 'OPENAI_API_KEY=your_openai_api_key' >> .env

# uv 是安装 agent-service-toolkit 的推荐方式,但 "pip install ." 也可以工作
# 关于 uv 安装选项,请参见:https://docs.astral.sh/uv/getting-started/installation/
curl -LsSf https://astral.sh/uv/0.7.19/install.sh | sh

# 安装依赖。"uv sync" 会自动创建 .venv
uv sync --frozen
source .venv/bin/activate
python src/run_service.py

# 在另一个终端窗口中
source .venv/bin/activate
streamlit run src/streamlit_app.py

使用 Docker 运行

echo 'OPENAI_API_KEY=your_openai_api_key' >> .env
docker compose watch

架构图

主要功能

  1. LangGraph 代理及最新特性:使用 LangGraph 框架构建的自定义代理。实现了最新的 LangGraph v1.0 特性,包括带有 interrupt() 的人机协作循环、带有 Command 的流程控制、带有 Store 的长期记忆,以及 langgraph-supervisor
  2. FastAPI 服务:提供流式和非流式端点来托管代理。
  3. 高级流式传输:一种新颖的方法以支持基于 token 和基于消息的流式传输。
  4. Streamlit 界面:提供用户友好的聊天界面以与代理交互,包括语音输入和输出。
  5. 多代理支持:在服务中运行多个代理并通过 URL 路径调用。可用代理和模型描述在 /info 中。
  6. 异步设计:利用 async/await 高效处理并发请求。
  7. 内容审核:实现 Safeguard 进行内容审核(需要 Groq API 密钥)。
  8. 检索增强生成 (RAG) 代理:使用 ChromaDB 的基本 RAG 代理实现 - 见 文档
  9. 反馈机制:包含集成 LangSmith 的基于星级的反馈系统。
  10. Docker 支持:包含 Dockerfile 和 docker compose 文件,便于开发和部署。
  11. 测试:包含针对整个仓库的稳健单元测试和集成测试。

关键文件

仓库结构如下:

  • src/agents/: 定义具有不同能力的多个代理
  • src/schema/: 定义协议模式
  • src/core/: 核心模块,包括大语言模型 (LLM) 定义和设置
  • src/service/service.py: 用于托管代理的 FastAPI 服务
  • src/client/client.py: 用于与代理服务交互的客户端
  • src/streamlit_app.py: 提供聊天界面的 Streamlit 应用
  • tests/: 单元测试和集成测试

设置与使用

  1. 克隆仓库:

    git clone https://github.com/JoshuaC215/agent-service-toolkit.git
    cd agent-service-toolkit
    
  2. 设置环境变量: 在根目录创建 .env 文件。至少需要一个大语言模型 (LLM) API 密钥或配置。查看 .env.example 文件 以获取可用环境变量的完整列表,包括各种模型提供商 API 密钥、基于头的认证、LangSmith 追踪、测试和开发模式以及 OpenWeatherMap API 密钥。

  3. 现在您可以在本地运行代理服务和 Streamlit 应用,使用 Docker 或仅使用 Python。推荐 Docker 设置,因为它可以简化环境设置,并在您修改代码时立即重新加载服务。

特定 AI 提供商的额外设置

构建或自定义您的代理

为了根据您的用例自定义代理:

  1. 将新代理添加到 src/agents 目录。您可以复制 research_assistant.pychatbot.py 并修改它以更改代理的行为和工具。
  2. 导入并将新代理添加到 src/agents/agents.py 中的 agents 字典。您的代理可以通过 /<your_agent_name>/invoke/<your_agent_name>/stream 调用。
  3. 调整 src/streamlit_app.py 中的 Streamlit 界面以匹配您的代理能力。

处理私有凭证文件

如果您的代理或所选大语言模型 (LLM) 需要基于文件的凭证文件或证书,已提供 privatecredentials/ 以供您的开发便利。除 .gitkeep 文件外,所有内容都被 git 和 docker 的构建过程忽略。请参阅 使用基于文件的凭证 了解建议用法。

Docker 配置

本项目包含一个 Docker 配置,用于方便的开发和部署。compose.yaml 文件定义了三个服务:postgresagent_servicestreamlit_app。每个服务的 Dockerfile 位于其各自的目录中。

对于本地开发,我们推荐使用 docker compose watch(一种文件监听功能)。此功能通过在检测到源代码更改时自动更新容器,提供更流畅的开发体验。

  1. 确保您的系统已安装 Docker 和 Docker Compose (>= v2.23.0)。

  2. .env.example 创建 .env 文件。至少需要提供 LLM(大型语言模型)API 密钥(例如 OPENAI_API_KEY)。

    cp .env.example .env
    # Edit .env to add your API keys
    
  3. 以监听模式构建并启动服务:

    docker compose watch
    

    这将自动执行以下操作:

    • 启动 PostgreSQL 数据库服务,代理服务将连接到此服务
    • 使用 FastAPI 启动代理服务
    • 启动用于用户界面的 Streamlit 应用
  4. 现在,当您修改代码时,服务将自动更新:

    • 相关 python 文件和目录中的更改将触发相关服务的更新。
    • 注意:如果您修改了 pyproject.tomluv.lock 文件,则需要通过运行 docker compose up --build 重新构建服务。
  5. 在 Web 浏览器中导航至 http://localhost:8501 即可访问 Streamlit 应用。

  6. 代理服务 API 将在 http://0.0.0.0:8080 可用。您还可以在 http://0.0.0.0:8080/redoc 使用 OpenAPI 文档。

  7. 使用 docker compose down 停止服务。

此设置允许您实时开发和测试更改,而无需手动重启服务。

基于 AgentClient 构建其他应用

仓库包含一个通用的 src/client/client.AgentClient(代理客户端),可用于与代理服务交互。此客户端设计灵活,可用于在代理之上构建其他应用。它支持同步和异步调用,以及流式和非流式请求。

请参阅 src/run_client.py 文件以获取如何使用 AgentClient 的完整示例。快速示例如下:

from client import AgentClient
client = AgentClient()

response = client.invoke("Tell me a brief joke?")
response.pretty_print()
# ================================== Ai Message ==================================
#
# A man walked into a library and asked the librarian, "Do you have any books on Pavlov's dogs and Schrödinger's cat?"
# The librarian replied, "It rings a bell, but I'm not sure if it's here or not."

使用 LangGraph Studio 进行开发

该代理支持 LangGraph Studio,这是为 LangGraph 开发代理的集成开发环境(IDE)。

langgraph-cli[inmem]uv sync 一起安装。您可以按照上述描述将 .env 文件添加到根目录,然后使用 langgraph dev 启动 LangGraph Studio。根据需要自定义 langgraph.json。请参阅 本地快速入门 了解更多。

不使用 Docker 的本地开发

您也可以在不使用 Docker 的情况下,仅使用 Python 虚拟环境在本地运行代理服务和 Streamlit 应用。

  1. 创建虚拟环境并安装依赖项:

    uv sync --frozen
    source .venv/bin/activate
    
  2. 运行 FastAPI 服务器:

    python src/run_service.py
    
  3. 在单独的终端中运行 Streamlit 应用:

    streamlit run src/streamlit_app.py
    
  4. 打开浏览器并导航到 Streamlit 提供的 URL(通常是 http://localhost:8501)。

使用或受 agent-service-toolkit 启发的项目

以下是几个从本仓库获取代码或灵感的一些公开项目。

  • PolyRAG - 扩展了 agent-service-toolkit,使其具备对 PostgreSQL 数据库和 PDF 文档的 RAG 能力。
  • alexrisch/agent-web-kit - agent-service-toolkit 的 Next.JS 前端
  • raushan-in/dapa - 数字逮捕保护应用 (DAPA) 允许用户通过用户友好的平台高效地报告金融诈骗和欺诈行为。

请创建拉取请求编辑 README 或发起讨论以添加任何新项目!我们很乐意纳入更多项目。

贡献

欢迎贡献!请随时提交拉取请求。目前,测试需要使用不使用 Docker 配置的本地开发环境运行。要运行代理服务的测试:

  1. 确保您处于项目根目录并已激活虚拟环境。

  2. 安装开发依赖项和 pre-commit 钩子:

    uv sync --frozen
    pre-commit install
    
  3. 使用 pytest(测试框架)运行测试:

    pytest
    

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架