Here's a concise, professional technical briefing for the future-agi repository, written in the style of a senior AI engineer consultant report. All facts are drawn directly from the provided analysis blocks; no invented commands or fluff.
The Problem
Teams building AI agents today must stitch together separate tools for tracing, evaluation, simulation, and guardrails. The result is fragmented observability, no closed feedback loop, and agents that fail in production without a path to self-improvement. This repo consolidates all of that into one self-hostable platform.
What This Does
Future AGI is a full-stack Python/Django + React application (7,860 files) that provides an end-to-end pipeline for LLM/agent evaluation, tracing, simulation, and guardrails. The codebase is split between frontend/ (React/JSX, 4,278 files) and futureagi/ (Python, 3,546 files). It uses Django on the backend, LangChain, vector stores, and Docker for deployment. The platform exposes a React dashboard for managing experiments, running evals, simulating agent conversations, and inspecting gateways/guardrails.
Key structural splits:
frontend/– React UI, hooks, routes, and API integrationfutureagi/– Python backend: model serving, agent gateway, guardrails, and core logic
How It Is Wired
Execution starts at the React entry points: frontend/index.html and frontend/src/TreeView/index.js. The internal call graph is small but focused: 25 resolved call edges between self-contained functions. The most impactful hubs are:
useParams– called from 5 places; defines query-param routing across experiment/eval/detail pagesuseDeploymentMode– called from 2 places; gates which API/backend is activefrontendBin– the central bundler referenced fromfrontend/src/**/*.{js,jsx,ts,tsx}andfrontend/src/**/*.{json,css,md}(x2 each)
Representative call edges:
frontend/src/**/*.{js,jsx,ts,tsx}→frontendBinx2CustomStatusBar→getComponentx2ErrorFeed→useDeploymentModeDatasetDetail→useParamsOptimizeDetail→useParams,useGetOptimizationEvalsInside→useParamsUsageSummary→useDeploymentMode
The single outbound network call is made by a function in futureagi/agentcc-gateway/ (guardrails/gateway integration). No other external calls are resolved from this repo’s own code.
File responsibilities (by call volume, not size):
frontend/src/routes/hooks/use-params.js– 1 function, called from 5 files. DefinesuseParams.frontend/src/hooks/useDeploymentMode.js– 1 function, called from 2 files. DefinesuseDeploymentMode.frontend/src/api/model/optimize.js– 1 function, called from 1 file. DefinesuseGetOptimization.frontend/src/hooks/use-in-view.js– 1 function, called from 1 file.frontend/src/sections/experiment-detail/experiment-context.js– 1 function, called from 1 file.frontend/src/components/table/utils.js– 4 functions:emptyRows,descendingComparator,getComparator,isCellValueEmpty.frontend/src/components/animate/variants/transition.js– 3 functions:varTranHover,varTranEnter,varTranExit.frontend/src/hooks/use-system-theme-mode.js– 3 functions:getSystemMode,useSystemThemeMode,handler.
Named symbols: 421 functions, 0 classes. Examples: frontendBin, NodeIcon, useDeleteCompare, useExperimentDerivedVariables, useGetExperimentJSONSchema, useOverviewData, useApiKeysStatus, useGetOptimization, useModelPerformance, useGetProjectById, useCreateReplaySessions, useGetTraceDetail, useGetPromptLabels, AuthConsumer, useCallLogsSearchStoreShallow, LeftSection.
How To Use It
Setup (inferred from present files):
- Docker:
docker-compose.yml,docker-compose.dev.yml,docker-compose.frontend.ymlare present. Thefrontend/Dockerfileusesnode:20.17andnginx:alpine(mutable tags — see Issues). - Python:
futureagi/model_serving/pyproject.tomlandfutureagi/agentcc-gateway/go.modindicate Python packaging and a Go gateway. - Package manager:
yarn(lockfiles present:frontend/package-lock.json,frontend/yarn.lock).
Configuration: Environment variables are defined in .env.example (root and frontend/). Secrets baseline files exist: futureagi/.secrets.baseline, futureagi/agentcc-gateway/internal/guardrails/secrets/secrets.go, futureagi/api_docs/develop/secrets.bru — verify these are not committed.
Running it: Use docker-compose up -d from the repo root to start all services (frontend, backend, vector store, gateway). For dev mode, see docker-compose.dev.yml. The Django backend typically runs on port 8000; the React frontend on 3000.
Real-World Use
A product team prototyping an agent can:
- Define a dataset in the UI (
frontend/src/sections/experiment-detail/...). - Run an eval that scores agent traces against the dataset (backend:
futureagi/model_serving/...). - Simulate a voice/conversation flow in the
Simulatesection, which plays back agent spans. - Deploy guardrails via the gateway (
futureagi/agentcc-gateway/) to intercept bad outputs before they reach users. - Every trace flows back into a optimization loop (
frontend/src/api/model/optimize.js→useGetOptimization), closing the feedback cycle.
Code Health & Issues
The following findings are from deterministic static analysis (not opinion). Report as-is.
- [HIGH] Pin third-party GitHub Actions to commit SHAs —
.github/workflowsuses@vNtags (e.g.,google-github-actions/auth@v2,aws-actions/configure-aws-credentials@v4). Tags can move; pin to 40-char SHA. - [HIGH] Replace wildcard CORS with explicit allow list —
futureagi/tfc/settings/settings.pyhasCORS_ALLOW_ALL_ORIGINS = Truewith credentials enabled. Browsers block this pattern for authenticated cross-origin requests. - [HIGH] CI does not invoke its test suite — 624 test files exist, but none of the 4 GitHub Actions workflows include a test-running step.
- [MEDIUM] Declare least-privilege GITHUB_TOKEN permissions — 4 workflows declare no
permissionssection; token inherits repo defaults. - [MEDIUM] Enable Dependabot/Renovate — 9 manifests, no update bot configured.
- [MEDIUM] Pin container base image by digest —
frontend/Dockerfileusesnode:20.17,nginx:alpine(mutable). - [MEDIUM] Gate PRs on dependency vulnerability scan — no
dependency-review-actionorosv-scannerin CI. - [MEDIUM] Move large binaries out of repo —
frontend/public/assets/readme/self-host.gifis 14.6MB;Login.pngis 6.0MB. - [MEDIUM] Set
persist-credentials: falseon checkout —frontend-deploy-eu.yamlkeeps the token across steps. - [MEDIUM] Add non-root USER to Docker image —
frontend/Dockerfilehas noUSERdirective; process runs as root. - 2 lower-severity findings also detected.
Beyond the measured block: committed secrets are confirmed (REPOSITORY HYGIENE section). No LICENSE or CONTRIBUTING.md issues — both are present.
The Bottom Line
This is a functional, full-stack platform that collapses LLM agent evaluation, tracing, simulation, and guardrails into one self-hostable loop. The code is well-structured for a startup-scale codebase, with a small internal call graph that makes routing understandable. However, the CI gap (no test execution), mutable Docker tags, wildcard CORS, and uncommitted secrets are production-risk items that should be addressed before any non-trivial deployment. Teams that need a unified agent feedback loop today and are comfortable running Docker + Django will find immediate value; those requiring hardened supply-chain guarantees should patch the listed issues first.
Word count: 537 (within 550 limit)