Skip to content

atom32/FastReAct

Repository files navigation

FastReAct

企业级 AI Agent 基础设施框架 - 双模式执行引擎(ReAct + IEL)

Python 3.10+ License: MIT Version: 1.1.0-alpha MCP Support


项目简介

FastReAct 是一个支持双模式执行的 AI Agent 框架:

  • 标准 ReAct 模式:适用于简单查询和单步任务
  • 高级 IEL 模式:适用于复杂工作流和动态重规划

设计目标

  • 双模式执行: ReAct(轻量)+ IEL/ToolGraph(高级)
  • 隐私优先: 支持完全离线部署,数据不离开本地环境
  • 模型灵活: 支持任何 OpenAI-compatible API
  • 成本可控: 通过智能上下文管理优化 Token 使用
  • 可扩展: 支持自定义工具和 MCP 协议集成

当前状态

版本: v1.1.0-alpha

  • 核心功能可用
  • 部分高级功能开发中
  • 生产使用需谨慎
  • 适合学习和原型开发

快速开始

安装

git clone https://github.com/atom32/FastReAct.git
cd FastReAct
pip install -e .

配置

# 方法 1: 使用用户配置(推荐)
mkdir -p ~/.fastreact
cp user_config.example.json ~/.fastreact/config.json
# 编辑添加你的 API keys

# 方法 2: 使用环境变量
export FASTREACT_API_KEY=your-api-key-here

使用

# 方式 1:标准 REPL(ReAct 模式)
python -m fastreact.cli.main shell

# 方式 2:GraphAgent REPL(智能规划)⭐ 新增
python scripts/run_graph_repl

# 单次查询
python -m fastreact.cli.main run "帮我计算 25 * 34"

# 启动 Gateway
python scripts/run_gateway.py

GraphAgent REPL 特点

  • ✅ 自动评估任务复杂度
  • ✅ GraphAgent 自动生成执行计划
  • ✅ 用户确认后再执行
  • ✅ 实时进度反馈

详细指南: INSTALLATION.md | NEW_ENVIRONMENT_SETUP.md

环境变量控制

FastReAct 支持通过环境变量控制执行模式和行为:

# 启用非阻塞 IEL 模式(渐进式交互执行)
# 特点:输入框始终可用,可随时输入 'stop' 中断执行
export FASTREACT_STEPPABLE=1
# Windows PowerShell: $env:FASTREACT_STEPPABLE="1"

# 强制文本模式(避免 ANSI 颜色码在旧终端显示为乱码)
export FASTREACT_TEXT_MODE=1
# Windows PowerShell: $env:FASTREACT_TEXT_MODE="1"

# 强制执行模式(禁用自动复杂度评估)
export FASTREACT_MODE=auto|react|graph_agent|iel
# Windows PowerShell: $env:FASTREACT_MODE="graph_agent"

使用示例(Windows PowerShell):

# 启用非阻塞 IEL 模式 + 文本模式
$env:FASTREACT_STEPPABLE="1"
$env:FASTREACT_TEXT_MODE="1"
python -m fastreact.cli.unified_repl

使用示例(Linux/Mac):

# 启用非阻塞 IEL 模式
export FASTREACT_STEPPABLE=1
python -m fastreact.cli.unified_repl

详细技术说明: IEL_TECHNICAL_DEEP_DIVE.md


功能概览

已实现功能

1. 双模式执行引擎

模式 A:标准 ReAct 循环

  • 推理-行动-观察循环 (Thought → Action → Observation)
  • 异步工具执行
  • 错误处理和重试机制
  • 会话管理
  • 默认模式,用于简单查询

模式 B:IEL + ToolGraph(高级)

  • IEL (Interactive Execution Loop): Plan → Execute → Reflect → Replan
  • ToolGraph: DAG 工作流编排
  • 动态图修改(插入/删除/替换节点)
  • Human-in-the-loop(用户中断)
  • 快照和回滚机制
  • 可选模式,用于复杂工作流

2. 智能上下文管理

  • Memory Flush: 自动总结长对话(50k tokens 触发)
  • Memory Retrieval: 向量检索历史对话(可选)
  • Progressive Compaction: 多层压缩(已实现,未完全集成)

3. 工具系统

  • 13 个内置工具(Calculator, Search, HTTP, Bash 等)
  • MCP 协议集成(GitHub, Apollo Core)
  • 工具策略控制(Allow/Deny 列表)
  • 风险分级和审批机制

4. 配置系统

  • 4 层配置优先级(ENV > USER > PROJECT > DEFAULT)
  • 支持多租户场景
  • 灵活的配置管理

5. 用户接口

  • CLI REPL(交互式命令行)
  • WebSocket Gateway(实时通信)
  • Web UI(通过 FastReAct-web 项目)

开发中功能

  • Progressive Compaction 完全集成
  • 多 Agent 协作(规划 v2.0.0)
  • Agent 编排(规划 v2.0.0)
  • 自动工具发现(规划 v2.0.0)
  • 完整的生产环境支持

架构

系统流程

┌─────────────────────────────────────────────────────────────┐
│  用户输入层                                                   │
│  CLI REPL / Python API / WebSocket Gateway                  │
└────────────┬────────────────────────────────────────────────┘
             │
             ├──────────────────────────────────────────┐
             │                                         │
             ▼                                         ▼
┌──────────────────────────┐              ┌──────────────────────────┐
│  方式 A:直接使用         │              │  方式 B:手动构建 Graph   │
│  FastReAct.run_async()   │              │  (高级用法)              │
└──────────┬───────────────┘              └──────────┬───────────────┘
           │                                             │
           ▼                                             ▼
┌──────────────────────────┐              ┌──────────────────────────┐
│  ReAct 循环引擎          │              │  ToolGraph 构建           │
│  (标准模式)              │              │  - 定义节点和边          │
│                          │              │  - 设置依赖关系          │
│  1. LLM 推理 (Thought)   │              │  - 声明式 API            │
│  2. 解析工具调用         │              └──────────┬───────────────┘
│  3. 并发执行工具         │                         │
│  4. 观察结果 (Observation)│                        ▼
│  5. 循环或返回答案       │              ┌──────────────────────────┐
│                          │              │  执行引擎选择            │
│  适合:简单查询、对话    │              ├──────────┬───────────────┤
└──────────┬───────────────┘              │          │               │
           │                             │          ▼               ▼
           │                             │   ┌──────────┐  ┌─────────────┐
           │                             │   │ToolRuntime│  │IELLoop     │
           │                             │   │(DAG执行) │  │(交互式)    │
           │                             │   │          │  │            │
           │                             │   │-拓扑排序 │  │-动态重规划  │
           │                             │   │-并行执行 │  │-用户中断   │
           │                             │   │          │  │-快照回滚   │
           │                             │   └────┬─────┘  └──────┬──────┘
           │                             │        │              │
           └─────────────────────────────┴────────┴──────────────┘
                                     │
                                     ▼
                          ┌──────────────────────┐
                          │  工具层              │
                          │  ┌────────────────┐  │
                          │  │ Builtin Tools  │  │
                          │  │ (13 个工具)    │  │
                          │  └────────────────┘  │
                          │  ┌────────────────┐  │
                          │  │ MCP Servers    │  │
                          │  │ (GitHub, etc)  │  │
                          │  └────────────────┘  │
                          └──────────┬───────────┘
                                     │
                                     ▼
                          ┌──────────────────────┐
                          │  基础设施层          │
                          │  LLM / Config / Store│
                          └──────────────────────┘

两种使用方式

方式 A:ReAct 模式(REPL 的默认方式)

from fastreact import FastReAct

agent = FastReAct(api_key="your-key")
result = await agent.run_async("帮我搜索最新的 AI 新闻")

# 内部流程:
# 1. LLM 推理:决定调用 TavilySearch 工具
# 2. 执行工具:调用搜索 API
# 3. 观察结果:获得搜索结果
# 4. LLM 总结:返回最终答案

使用场景

  • 简单问答
  • 单步工具调用
  • REPL 交互

特点

  • 自动循环直到得到答案
  • 无需手动规划
  • 快速、轻量

方式 B:ToolGraph/IEL 模式(高级编程)

from fastreact.graph import (
    create_tool_node, ToolGraph, create_pipeline
)
from fastreact.graph import IELLoop, IELExecutionContext
from fastreact.graph import StepExecutor, Replanner

# 1. 定义工作流图
node1 = create_tool_node(id="search", tool=search_tool)
node2 = create_tool_node(id="analyze", tool=analyze_tool)
node3 = create_tool_node(id="report", tool=report_tool)

graph = ToolGraph("my_workflow")
graph.add_node(node1).add_node(node2).add_node(node3)
graph.connect("search", "analyze")
graph.connect("analyze", "report")

# 2. 选择执行方式

# 方式 B1:DAG 执行(简单)
from fastreact.graph import ToolRuntime, execute_graph
result = await execute_graph(graph, inputs={"query": "AI news"})

# 方式 B2:IEL 循环(高级,支持重规划)
context = IELExecutionContext(graph, initial_inputs={"query": "AI news"})
executor = StepExecutor(tools=tool_registry)
replanner = Replanner(llm_client=client)
loop = IELLoop(executor, replanner)

result = await loop.run(context)

使用场景

  • 复杂多步骤工作流
  • 需要动态重规划
  • 需要 human-in-the-loop
  • 需要快照回滚

特点

  • 完全控制执行流程
  • 可视化工作流
  • 支持失败恢复

关键区别

特性 ReAct 模式 ToolGraph/IEL 模式
入口 FastReAct.run_async() 手动构建 ToolGraph
规划 LLM 自动决策(隐式) 用户显式定义 DAG
执行 循环直到答案 按图结构执行
重规划 IEL 支持动态修改
中断 不支持 支持用户输入/中断
回滚 快照和回滚机制
适用 90% 的简单任务 10% 的复杂工作流

分层架构

┌─────────────────────────────────────────┐
│  用户接口层                              │
│  CLI REPL / WebSocket Gateway / Web UI  │
└──────────────┬──────────────────────────┘
               │
┌──────────────▼──────────────────────────┐
│  执行引擎层                              │
│  ┌────────────────┐  ┌───────────────┐ │
│  │ FastReAct      │  │ ToolGraph/IEL │ │
│  │ (ReAct Loop)   │  │ (可选)        │ │
│  └────────────────┘  └───────────────┘ │
│  - 上下文管理 (Memory Flush)            │
└──────────────┬──────────────────────────┘
               │
┌──────────────▼──────────────────────────┐
│  工具层                                 │
│  ┌─────────┐  ┌──────────┐  ┌────────┐ │
│  │ Builtin │  │  Memory   │  │  MCP   │ │
│  │ Tools   │  │ Retrieval │  │ Servers│ │
│  └─────────┘  └──────────┘  └────────┘ │
└──────────────┬──────────────────────────┘
               │
┌──────────────▼──────────────────────────┐
│  基础设施层                             │
│  LLM 抽象 / 配置系统 / 存储层            │
└─────────────────────────────────────────┘

注意

  • FastReAct (ReAct):用于 90% 的简单任务,REPL 的默认方式
  • ToolGraph/IEL:用于 10% 的复杂工作流,需要手动构建

使用示例

基础查询

from fastreact import FastReAct

agent = FastReAct(api_key="your-api-key")
result = agent.run("2 + 2 * 3 = ?")
print(result['answer'])  # 8

工具调用

# 在 REPL 中
>>> 计算 (25 + 35) * 2 - 10
>>> 搜索最新的 AI 新闻
>>> 在 atom32/FastReAct 创建一个 issue

Gateway + Web UI

# 终端 1:启动 Gateway
python scripts/run_gateway.py

# 终端 2:启动 Web UI(需要 FastReAct-web 项目)
cd ../FastReAct-web
npm run dev

# 浏览器访问 http://localhost:3001

技术亮点

1. 双模式执行架构

  • ReAct 循环: 轻量级、快速响应,适合简单任务
  • IEL + ToolGraph: 复杂工作流、动态重规划、Human-in-loop
  • 根据任务复杂度自动选择
  • 两种模式可独立使用,也可组合

2. IEL (Interactive Execution Loop)

  • Plan → Execute → Reflect → Replan 循环
  • 动态图修改(运行时插入/替换节点)
  • 快照和回滚机制
  • 用户中断和输入处理
  • 失败自动重试和修复

3. ToolGraph 系统

  • 声明式工作流定义(node1 >> node2
  • DAG 执行和依赖解析
  • 并行执行((node1 | node2) >> node3
  • 条件执行和循环支持

4. Memory Flush (自动上下文管理)

  • 触发阈值: 50000 (soft) / 55000 (hard) tokens
  • 自动总结旧消息
  • 压缩比约 70%
  • 已实现并集成

5. MCP 协议集成

  • 标准化工具协议
  • 支持 GitHub MCP、Apollo Core
  • 100+ 社区 MCP servers 可用
  • 已实现并可用

6. 4 层配置优先级

  • ENV > USER > PROJECT > DEFAULT
  • 支持多租户场景
  • 敏感信息隔离
  • 已实现并验证

7. 工具策略控制

  • 风险分级(HIGH/MEDIUM/LOW)
  • 执行审批机制
  • 动态策略控制
  • 已实现

技术债务与限制

当前限制

  1. 测试覆盖不足: 缺少端到端集成测试
  2. 性能数据未验证: 部分优化效果未实际测量
  3. Progressive Compaction: 代码已写但未完全集成
  4. Alpha 版本: 不推荐直接用于生产环境

已知问题

  1. 部分 MCP servers 在 Windows 上有兼容性问题
  2. 长对话场景需要更多测试
  3. 错误处理需要更健壮

文档

核心文档

功能文档

系统文档

完整文档索引


适用场景

适合

  • 学习 ReAct 架构
  • 快速原型开发
  • 小规模内部部署
  • 需要本地化/隐私保护
  • 需要自定义工具

不适合

  • 大规模生产环境(目前)
  • 需要完整功能(vs LangChain)
  • 不想配置环境
  • 需要开箱即用的完美体验

开发路线图

v1.1.0 (当前 Alpha)

  • ReAct 核心引擎
  • Memory Flush
  • MCP 协议集成
  • 4 层配置优先级
  • 工具系统
  • Progressive Compaction 集成

v1.2.0 (规划)

  • 完整的集成测试
  • 性能基准测试
  • 生产环境验证
  • 错误处理增强

v2.0.0 (未来)

  • 多 Agent 协作
  • Agent 编排
  • 自动工具发现

贡献

欢迎贡献!请查看 CLAUDE.md 了解开发规则。

开发环境

# 克隆仓库
git clone https://github.com/atom32/FastReAct.git
cd FastReAct

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
venv\Scripts\activate     # Windows

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
python test_config_priority.py
python test_memory_flush_logic.py

许可证

MIT License


致谢


联系方式


最后更新: 2025-02-05 版本: v1.1.0-alpha 状态: Alpha - 核心功能可用,持续改进中

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages