Major changes across parallel sessions: - Add orchestrator SFT & GRPO training subpackage (learning/orchestrator/) with episode types, multi-objective reward, prompt registry, policy model, RL environment, and registered learning policies - Add structured THOUGHT/TOOL/INPUT/FINAL_ANSWER mode to OrchestratorAgent - Add 15 channel backends (Discord, Slack, Telegram, Email, Webhook, IRC, Matrix, Teams, WhatsApp, Signal, Mattermost, BlueBubbles, Feishu, Google Chat, Webchat) with channel tools and config - Add LiteLLM engine backend for unified LLM provider access - Add RLM agent and REPL tool - Remove ToolLearningPolicy — learning taxonomy now only targets Intelligence (LM weights/routing) and Agents (logic/ICL/tool strategies) - Rename SFTPolicy to SFTRouterPolicy (backward-compat alias kept) - Remove OpenClaw agent infrastructure (openclaw*.py, openclaw_bridge.py) - Fix async streaming tests (asyncio.run vs deprecated get_event_loop) - Fix server channel route tests (pytest.importorskip for optional fastapi) - Track uv.lock for reproducibility - Update CLAUDE.md and docs to reflect all changes 1676 tests pass, 37 skipped. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OpenJarvis is a framework for building AI systems that run entirely on local hardware. Rather than treating intelligence as a cloud service, OpenJarvis provides composable abstractions for local model selection, inference, agentic reasoning, tool use, and learning — all aware of the hardware they run on.
from openjarvis import Jarvis
j = Jarvis() # auto-detect hardware + engine
response = j.ask("Explain backpropagation") # route to best local model
j.ask("Solve x^2 - 5x + 6 = 0", # multi-turn agent with tools
agent="orchestrator",
tools=["calculator", "think"])
j.memory.index("./papers/") # index documents into local storage
results = j.memory.search("attention mechanism") # semantic retrieval
j.close()
Installation
pip install openjarvis # core framework
pip install openjarvis[server] # + FastAPI server
You also need a local inference backend: Ollama, vLLM, SGLang, or llama.cpp.
The Five Pillars
| Pillar | What it does | Key abstractions |
|---|---|---|
| Intelligence | Model management and routing | RouterPolicy, QueryAnalyzer, ModelCatalog |
| Engine | Inference runtime abstraction | InferenceEngine ABC — Ollama, vLLM, SGLang, llama.cpp, MLX |
| Agents | Pluggable reasoning strategies | BaseAgent ABC — Simple, Orchestrator, ReAct, OpenHands, OpenClaw |
| Tools | Capabilities via MCP | BaseTool ABC — calculator, code interpreter, web search, memory; external MCP servers auto-discovered |
| Learning | Trace-driven adaptation | LearningPolicy ABC — SFT (model routing), AgentAdvisor (restructuring), ICL (tool usage) |
Every interaction produces a Trace — a structured record of the full reasoning chain. Learning policies consume traces to improve model selection, agent behavior, and tool usage over time.
About
OpenJarvis is part of Intelligence Per Watt, a research initiative studying the efficiency of on-device AI systems. The project is developed at Hazy Research and the Scaling Intelligence Lab at Stanford SAIL.
Sponsors
Laude Institute • Stanford Marlowe • Google Cloud Platform • Lambda Labs