Skip to content

Repository files navigation

Simple Agents - 智能代理系统

🎯 项目定位

Simple Agents 是一个企业级智能代理框架,基于 LangGraph 构建,提供开箱即用的 AI Agent 能力。适用于需要复杂任务编排、多模态处理和安全隔离的场景。

核心特点

  • 🔧 模块化架构 - 中间件、技能、工具完全解耦,易于扩展
  • 🔒 安全隔离 - 每个对话独立沙箱环境(data/sandbox_sessions/{thread_id}/
  • 🤖 子代理支持 - 内置研究子代理,支持任务委托和并行执行
  • 📊 多模态处理 - 支持 PDF、Excel、Word、图片等文件处理
  • 🌐 Web 研究能力 - 智能网页抓取、内容提取和 Markdown 转换
  • 💾 持久化存储 - Redis + PostgreSQL,支持对话历史和状态管理
  • 🔄 动态模型切换 - 运行时切换 LLM 模型(Anthropic/OpenAI/DeepSeek)
  • 🎨 完整 UI - 配套 Web 聊天界面(agent-chat-ui)

🏗️ 系统架构

核心组件

simple-agents/
├── src/
│ ├── graph.py # 主 Agent 定义(LangGraph 入口)
│ ├── webapp.py # FastAPI 服务(文件下载、模型列表)
│ ├── middleware/ # 中间件层
│ │ ├── attachment_extract.py # 附件提取
│ │ ├── streaming_tool_call_fix.py # 流式输出修复
│ │ ├── generated_files.py # 生成文件追踪
│ │ └── suggested_questions.py # 建议问题生成
│ ├── skills/ # 技能模块(可插拔)
│ │ ├── pdf/ # PDF 处理(填充、转图片)
│ │ ├── xlsx/ # Excel 处理(重算、分析)
│ │ ├── pandas-data-analysis/ # 数据分析
│ │ ├── relation-graph/ # 关系图谱构建
│ │ └── tavily-search/ # 搜索增强
│ ├── tools/ # 基础工具
│ │ ├── think.py # 思考工具(推理链)
│ │ ├── fetch.py # URL 抓取
│ │ └── converts.py # 格式转换
│ └── prompts.py # 提示词管理
├── deepagents/ # 核心框架包
│ ├── graph.py # create_deep_agent 主函数
│ ├── middleware/ # 框架中间件
│ │ ├── filesystem.py # 文件系统操作
│ │ ├── memory.py # 记忆管理
│ │ ├── subagents.py # 子代理调度
│ │ ├── skills.py # 技能加载
│ │ └── summarization.py # 上下文压缩
│ └── backends/ # 后端实现
│ ├── sandbox.py # 沙箱隔离
│ ├── filesystem.py # 文件操作
│ └── store.py # 存储抽象
└── docker-compose.yml # 多服务编排

服务架构

┌─────────────────┐
│ agent-chat-ui │ (端口 8124)
│ Web 聊天界面 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ agents-api │ (端口 8123)
│ LangGraph 服务 │
└────┬───┬───┬────┘
│ │ │
│ │ └──────────┐
│ │ ▼
│ │ ┌───────────────┐
│ │ │browser-service│ (端口 2025)
│ │ │ 浏览器抓取 │
│ │ └───────────────┘
│ │
▼ ▼
┌─────┐ ┌──────────┐
│Redis│ │PostgreSQL│ (端口 5433)
└─────┘ └──────────┘

🚀 核心功能

1. 智能对话与推理

  • 思考链(Chain of Thought) - think_tool 支持复杂推理
  • 上下文管理 - 自动压缩长对话,保持关键信息
  • 流式输出 - 实时响应,优化用户体验

2. Web 研究能力

  • 智能抓取 - 通过 browser-service 渲染 JavaScript 页面
  • 内容提取 - 自动转换为 Markdown 格式
  • 研究子代理 - 专门处理深度研究任务(限制 500 次工具调用)

3. 文件处理

文件类型支持操作
PDF填充表单、转图片、提取文本
Excel公式重算、数据分析、图表生成
Word内容提取、格式转换
图片OCR、视觉理解

4. 数据分析

  • Pandas 集成 - 自动生成数据分析代码
  • SQL 分析 - 支持数据库查询和可视化
  • 关系图谱 - 构建实体关系网络

5. 安全与隔离

  • 沙箱环境 - 每个对话独立文件系统
  • 工具限制 - 防止无限循环(全局 500 次,单工具可配置)
  • API 认证 - 基于 API Key 的访问控制

6. 扩展性

  • 中间件机制 - 请求/响应拦截和修改
  • 技能插件 - 从 /skills 目录自动加载
  • 动态工具 - 运行时注入工具(config.configurable.dynamic_tools
  • 模型切换 - 支持多种 LLM 提供商

📊 技术栈

层级技术
框架LangGraph 1.0.9, LangChain 1.2.11
LLMAnthropic Claude, OpenAI, DeepSeek
后端FastAPI 0.132.0, Python 3.12+
存储Redis 6, PostgreSQL 16 (pgvector)
前端agent-chat-ui (React)
容器Docker Compose
数据处理Pandas 3.0.1, openpyxl 3.1.5

🎯 适用场景

通用场景

  1. 智能客服 - 多轮对话、知识库检索
  2. 内容创作 - 文章生成、文档处理
  3. 数据分析 - 自动化报表、可视化
  4. 研究助手 - Web 搜索、信息整合

垂直领域

  1. 金融分析 - 财报解读、市场研究
  2. 法律咨询 - 文档审查、案例检索
  3. 教育培训 - 作业批改、教学设计
  4. 电商运营 - 商品分析、用户画像

🔧 快速开始

1. 环境配置

# 复制环境变量模板
cp .env.example .env
# 编辑 .env 文件
L_MODEL_MODEL_ID=claude-3-5-sonnet-20241022
L_MODEL_PROVIDER=anthropic
L_MODEL_API_KEY=sk-ant-xxxx

2. 安装依赖

uv sync

3. 启动服务

# 开发模式(单机)
./start_server.sh
# 生产模式(Docker Compose)
docker-compose up -d

4. 访问服务


💡 核心优势

vs 传统 Chatbot

特性Simple Agents传统 Chatbot
任务编排✅ 多步骤自动化❌ 单轮问答
文件处理✅ 多格式支持❌ 仅文本
代码执行✅ 沙箱隔离❌ 不支持
子任务委托✅ 子代理机制❌ 单一流程

vs 其他 Agent 框架

特性Simple AgentsAutoGPTLangChain
生产就绪✅ 完整部署方案❌ 实验性⚠️ 需自行集成
安全隔离✅ 内置沙箱❌ 无隔离⚠️ 需自行实现
UI 界面✅ 开箱即用❌ 无❌ 无
中间件✅ 完整生态❌ 有限⚠️ 需自行开发

🛣️ 商业化路径

1. SaaS 服务

  • 按量计费 - API 调用次数、Token 消耗
  • 订阅制 - 企业版、专业版、基础版
  • 私有部署 - 一次性授权费 + 年度维护

2. 垂直解决方案

  • 行业定制 - 金融/法律/教育专用版
  • 集成服务 - 与企业现有系统对接
  • 咨询培训 - Agent 开发培训、最佳实践

3. 技术授权

  • 白标方案 - 品牌定制、源码授权
  • 插件市场 - 技能/中间件付费生态
  • 技术支持 - 企业级 SLA 保障

📈 性能指标

  • 响应延迟: < 2s (首 Token)
  • 并发支持: 100+ 对话/实例
  • 文件处理: 支持 100MB+ 文档
  • 沙箱隔离: 完全独立,无交叉污染
  • 工具调用: 500 次/对话(可配置)

🔗 相关资源


📝 版本信息

  • 当前版本: v0.2.0
  • Python 要求: >= 3.12
  • LangGraph: 1.0.9
  • 更新日期: 2026-04-29

🤝 支持与反馈

如需技术支持或商务合作,请联系项目维护者。

About

simple-agents

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages