Skip to content

Repository files navigation

ReAct AI Agent

全自动算法解题系统,基于 ReAct(Reasoning + Acting) 框架。Django 提供可视化 Web 界面,实时流式展示 LLM 推理和解题过程。


效果

界面截图

  • 左侧题库面板:LeetCode(Medium / Hard)+ Codeforces(按 rating 渐变色标签)
  • 右侧过程面板:think 灰色泡泡、Phase 1 蓝色、Phase 2 绿色、Observation 黄色,代码块语法高亮
  • 右上角 Ollama 健康检测(每 15 秒轮询)
  • 已解题目直接加载历史日志回放,未解题目点击后一键运行

项目结构

ReAct-AI-Agent/
├── manage.py
├── requirements.txt
│
├── core/                       # Django 项目配置
│   ├── settings.py
│   └── urls.py
│
├── web/                        # Django App
│   ├── api.py                  # Django Ninja API(题库 / 日志 / 健康检查 / SSE 解题)
│   ├── views.py
│   └── templates/web/
│       └── index.html
│
├── static/
│   ├── css/main.css
│   └── js/main.js
│
└── ai_agent/                   # ReAct 算法解题引擎
    ├── src/
    │   ├── agent/              # ReAct 主循环
    │   ├── providers/          # LLM Provider(Ollama / OpenAI / OpenRouter)
    │   ├── templates/          # Prompt 模板(Phase 1 / Phase 2)
    │   ├── parsers/            # 题目解析器(LeetCode / Codeforces)
    │   ├── sandbox/            # Docker 隔离执行
    │   ├── logger/             # 增量落盘 JSON 日志
    │   └── utils/              # tiktoken token 计数 + 消息裁剪
    ├── problems/               # 题库 JSON
    ├── logs/                   # 解题日志(JSON)
    ├── .env                    # LLM 配置
    └── Dockerfile.sandbox      # 沙盒镜像

环境要求

  • Python 3.11+
  • Docker Desktop(运行状态)
  • Ollama(本地模型)或 OpenAI / OpenRouter API Key

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置 LLM

cp ai_agent/.env.example ai_agent/.env

编辑 ai_agent/.env

PROVIDER_TYPE=ollama
PROVIDER_MODEL=gpt-oss:120b
PROVIDER_BASE_URL=http://localhost:11434/v1

3. 构建 Docker 沙盒镜像

docker build -f ai_agent/Dockerfile.sandbox -t react-agent-sandbox:latest .

4. 启动

python manage.py runserver 8080

访问 http://127.0.0.1:8080

停止服务:

lsof -ti :8080 | xargs kill -9

API 接口

方法 路径 说明
GET /api/problems 题库列表(含是否有日志)
GET /api/log/{source}/{id} 加载历史日志(/__ 编码)
GET /api/health Ollama 在线状态
GET /api/solve/{source}/{id} SSE 流式解题

SSE 事件类型:think / phase / content / observation / done / error


解题流程

Phase 1(think=high)
  生成测试框架 → 开放用例(模型可见)+ 隐藏用例(模型不可见)

Phase 2  ReAct 循环(最多 8 轮,think=high,max_output=64k)
  Thought → 写代码 → Docker 沙盒执行 → Observation → 下一轮
  全部测试通过(含隐藏用例)→ 结束

开放 / 隐藏用例的分层设计遵循 TDD / CI-CD 原则:模型只能看到样例,无法针对用例硬编码,必须写通用算法。


Provider 切换

修改 ai_agent/.env 即可,无需改代码:

Provider 配置
Ollama 本地 PROVIDER_TYPE=ollama PROVIDER_MODEL=gpt-oss:120b
OpenAI PROVIDER_TYPE=openai PROVIDER_MODEL=gpt-4o PROVIDER_API_KEY=sk-xxx
OpenRouter PROVIDER_TYPE=openrouter PROVIDER_MODEL=anthropic/claude-opus-4-5 PROVIDER_API_KEY=sk-or-xxx

About

Full-stack ReAct AI algorithm solver: LLM-driven TDD/CI-CD loop with Django web UI, SSE streaming, and Docker sandboxed execution

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages