Rag Sys banner
busybutlazy busybutlazy

Rag Sys

AI community

Description

Deep Research Agent demo (React + Python FastAPI + ArangoDB) built with Claude Code under a defined plan → implement → review workflow. ReAct agent loop with hybrid BM25+vector search and cited retrieval.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Deep Research Agent — Demo

[繁體中文](./README.zh-TW.md) | English

**Demo project, not a product.** No accounts, no persistence beyond a browser session, no backward compatibility. Bring your own OpenAI API key and a handful of documents.


What This Is

A minimal RAG chat agent that decides for itself how many rounds of retrieval it needs before answering. Paste an OpenAI API key into the browser, upload a few documents, ask a question — the agent breaks it down, searches the shared knowledge base as many times as it judges necessary (capped by a simple tool-call/step budget), and answers with a structured, cited research report.

This repo started as a larger multi-tenant product (auth, notebooks, MySQL, GraphRAG — see `ROADMAP.md` / `ROADMAP2.md` / `ROADMAP3.md` for that history) and was stripped down to this demo on `demo/deep-research-agent-minimal`. The full pre-demo code is preserved on the local `backup/pre-demo-simplify-2026-09-05` branch if any of it is needed again.


Architecture

[Browser]
    │  port 5987 (only exposed port)
    ▼
[Frontend: React + Vite + Nginx]  (no login, no router — one page)
    │  /ai/* internal network
    ▼
[AI Server: Python FastAPI]  ──→  OpenAI Chat Completions (user-supplied API key, per request)
    │  internal
    ▼
[RAG Server: Python FastAPI] ──→  [ArangoDB]  (hybrid vector + BM25 search via RRF)
                             ──→  OpenAI Embeddings (server-side key, ingestion only)

Services

Service Stack Internal Port Exposed
frontend React + Vite + Nginx 80 5987
ai-server Python FastAPI 8002 no
rag-server Python FastAPI 8003 no
arangodb ArangoDB 3.12 8529 no

Only the frontend port is exposed to the host. There is no BE server and no MySQL — everything uploaded goes into on