Thanks for your interest in contributing! This project exists because of people like you.
Future AGI is an open-source AI evaluation and observability platform, and we welcome contributions of all kinds: bug fixes, new evaluators, framework integrations, docs improvements, examples, and issue triage.
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold it. Report unacceptable behavior to conduct@futureagi.com.
Before we can merge your first pull request, you'll need to sign our Contributor License Agreement. This is a one-click process that runs automatically on your first PR — you'll see a link to sign, we merge after.
The CLA grants Future AGI, Inc. the rights to use your contribution (including an Apache-style patent grant), while letting you retain copyright. It also lets us re-license portions of the project later if needed (e.g. for a future /ee/ folder).
gh repo fork future-agi/future-agi --clone
cd future-agicp futureagi/.env.example futureagi/.env
docker compose up -dThe backend will be at http://localhost:8000, the frontend at http://localhost:3031.
# From repo root — installs husky hooks and lint-staged tooling.
yarn install
# For Python hooks (black, isort, mypy, Django system checks):
cd futureagi && make pre-commit-installOn every commit, lint-staged auto-formats and lints the staged files:
frontend/src/**→ ESLint + Prettierfutureagi/**/*.py→black,isort,mypy(via pre-commit)
Branch names are validated on git push.
# Backend
cd futureagi && make test
# Frontend
cd frontend && yarn testFull testing workflow — git hooks, CI pipeline, coverage thresholds, frontend/backend-specific commands — lives in TESTING.md. Backend setup: futureagi/README.md. Frontend conventions and commands: frontend/README.md.
Before filing, search existing issues to see if it's already reported. A good bug report includes:
- Future AGI version (
git rev-parse HEADif self-hosted; see the settings page in Cloud) - Environment: OS, Python / Node version, Docker version
- Exact reproduction steps
- Expected vs. actual behavior
- Relevant logs or stack traces
For anything larger than a few hours of work, open an issue first so we can discuss design before you write code. This saves everyone time.
Good feature requests:
- Describe the problem you're trying to solve
- Show (don't tell) — a mockup, a code snippet of the desired API
- List alternatives you considered
- Call out anything you're unsure about
- Pick a
good first issue(or open one) - Comment that you're working on it so we don't double-up
- Branch from
dev:git checkout -b fix/short-description - Make your change — keep the diff small and focused
- Add tests (every bug fix needs a regression test)
- Make sure
make check-allpasses - Push and open a PR using the template
- Sign the CLA when the bot asks
Most evaluators live under futureagi/agentic_eval/core_evals/fi_evals/. Each evaluator needs:
- A Python class extending
BaseEvaluatororLLMEvaluator - A rubric prompt (if LLM-as-judge) — in the evaluator's own
prompt.py - A registration entry in
eval_type.py - Tests in the nearest
tests/directory - Docs in
docs/evaluators/(separate docs repo)
See adding an evaluator for the full walkthrough.
Framework integrations live in the traceAI SDK (separate repo). For Python: github.com/future-agi/traceAI. Add an instrumentor subclassing BaseInstrumentor in traceloop-sdk/ — see the LangChain and LlamaIndex instrumentors for the pattern.
We follow:
- Python: PEP 8 via Ruff + Black (line length 88)
- Imports:
isortwith Black profile - Types: new code must pass
mypy(we use a baseline for existing code) - JS / TS: ESLint (Airbnb) + Prettier
- Commits: Conventional Commits (
feat:,fix:,chore:,docs:,refactor:,test:,perf:) - Branch names:
type/short-description(e.g.fix/session-list-pagination)
Run make format to auto-fix most issues.
Before requesting review:
- PR description explains what and why (not just how — the diff shows that)
- Tests added or updated
-
make check-all(backend) oryarn check-all(frontend) passes - Docstrings on new public APIs
- CHANGELOG updated if user-facing
- No hardcoded secrets, URLs, or PII
- CLA signed (bot will prompt on first PR)
Your PR will be reviewed by a maintainer within 3 business days. If it's been longer, feel free to @mention one of us.
future-agi/
├── futureagi/ # Django backend (Python)
│ ├── tracer/ # OpenTelemetry ingest + trace APIs
│ ├── agentic_eval/ # Evaluation framework
│ ├── simulate/ # Agent simulation
│ ├── accounts/ # Auth, orgs, workspaces
│ ├── model_hub/ # LLM / embedding hub
│ ├── tfc/ # Django project settings + routing
│ └── ...
└── frontend/ # React + Vite (JavaScript)
We release a new version of the Docker images roughly every two weeks, and SDK minor versions as features land. We follow SemVer.
Release notes live at futureagi.com/changelog.
We read every issue and PR. If we don't respond within a few days, it's not intentional — please ping us. We're a small team trying to build something great with you.
Star the repo ⭐, join Discord 💬, and ship something you're proud of. ❤️