mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 02:42:16 +00:00
2faf58f3f7256c25979b1ee66efa555edbd27919
- Use importlib.import_module + patch.object to fix 19 broken tests (module shadowing issue in cli/__init__.py) - Add 400 retry without tools in _openai_compat.py for vLLM servers without --enable-auto-tool-choice - Update NOTES.md with session 2 findings 🤖 Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <noreply@cognition.ai>
OpenJarvis
Your AI stack, your rules.
A modular, pluggable AI assistant backend. Compose your own stack across five pillars — Intelligence, Learning, Memory, Agents, and Inference — then swap any piece without touching the rest.
Status: v1.0 — All five pillars implemented. SDK, benchmarks, OpenClaw infrastructure, and Docker deployment ready.
What is this?
OpenJarvis lets you build a personal AI assistant from composable parts:
- Intelligence — multi-model management with automatic routing (Qwen3, GPT OSS, Kimi-K2.5, Claude, GPT-5, Gemini)
- Memory — persistent, searchable storage with multiple backends (SQLite, FAISS, ColBERTv2, BM25, hybrid)
- Agents — pluggable reasoning and tool use (OpenClaw Pi agent, simple, orchestrator, custom)
- Inference — hardware-aware engine selection (vLLM, SGLang, Ollama, llama.cpp, MLX)
- Learning — router that improves over time (heuristic now, learned later)
Quick Start — Python SDK
from openjarvis import Jarvis
j = Jarvis()
response = j.ask("What is the meaning of life?")
print(response)
# With a specific model and agent
response = j.ask("Explain gravity", model="qwen3:8b", agent="orchestrator")
# Memory operations
j.memory.index("./docs/")
results = j.memory.search("machine learning")
j.close()
Quick Start — CLI
jarvis ask "Hello, what can you do?"
jarvis ask --agent orchestrator --tools calculator,think "What is 2+2?"
jarvis bench run -n 5 --json
jarvis model list
jarvis memory index ./docs/
jarvis serve --port 8000
Docker
docker compose up -d # Starts Jarvis + Ollama
curl http://localhost:8000/health
Documentation
- VISION.md — Project vision, architecture, design principles
- ROADMAP.md — Phased development plan with deliverables
- CLAUDE.md — Developer reference for working with the codebase
Quick orientation
src/openjarvis/
├── core/ # Registry, types, config, event bus
├── intelligence/ # Model management, routing
├── memory/ # Storage backends (SQLite, FAISS, ColBERT, BM25, hybrid)
├── agents/ # Agent implementations + tool system + OpenClaw
├── engine/ # Inference engine wrappers
├── learning/ # Router policy (heuristic, GRPO stub)
├── bench/ # Benchmarking framework (latency, throughput)
├── telemetry/ # Telemetry store + aggregator
├── server/ # OpenAI-compatible API server
├── cli/ # CLI entry points
└── sdk.py # Python SDK (Jarvis class)
Requirements
- Python 3.10+
- An inference backend: Ollama, vLLM, or llama.cpp
- Node.js 22+ (only if using OpenClaw agent)
License
TBD
Languages
Python
82.8%
Rust
8.6%
TypeScript
7.1%
Shell
0.7%
HTML
0.3%
Other
0.5%