How chelmooz/projet-jarvis works
JARVIS is an offline, portable, multi-agent assistant exposed through a local web/API interface. The documented request path is web client → FastAPI → agent graph/orchestration → model selection and inference → local Ollama, with conversation persistence. Separate branches cover configurable pipelines and their adaptive RAG feedback loop, document/wiki ingestion and vector knowledge, specialized agents, and system diagnostics. The graph combines README statements with indexed references and shown excerpts; unsampled subsystems are represented only where the README documents their role, so some internal links are omitted.
Main entry points: router.py FastAPI API · pipeline.py Pipeline engine · orchestrator.py Request orchestrator · agent_graph.py Agent graph
Components 26
Web and API
- Web UI
static - FastAPI API
controllers/router.py - Chat endpoint
controllers/routes/jarvis.py - Pipeline endpoint
controllers/routes/pipelines.py - Document upload
controllers/routes/documents.py - Conversation API
controllers/routes/conversations.py - Dependency assembly
controllers/di.py
Agent Runtime
- Agent graph
graph/agent_graph.py - Agent steps
services/pipeline_steps.py - Agent supervisor
agents/supervisor.py - Specialized agents
agents/factory.py - Request orchestrator
services/orchestrator.py
Knowledge and RAG
- Pipeline engine
services/pipeline.py - RAG judge
services/rag_judge.py - Execution traces
services/trace_sidecar.py - Vector memory
services/vector.py - Wiki ingestion
services/wiki_ingest_service.py - Text chunker
services/chunker.py - Conversation history
services/conversation.py
Operations
- System diagnostics
services/diagnostics/service.py - External tool checks
services/diagnostic_ext/service.py
Local Model Integration
- Model selector
services/selector.py - Inference service
services/inference.py - Ollama adapter
services/adapters/ollama_adapter.py - Local Ollama
Other components
- User
Connections 28
- User → Web UI: uses
README.md - Web UI → FastAPI API: calls
README.md - FastAPI API → Chat endpoint: routes to
controllers/router.py - FastAPI API → Pipeline endpoint: routes to
controllers/router.py - FastAPI API → Document upload: routes to
controllers/router.py - FastAPI API → Conversation API: routes to
controllers/router.py - Chat endpoint → Request orchestrator: invokes
controllers/routes/jarvis.py - Pipeline endpoint → Pipeline engine: runs
controllers/routes/pipelines.py - FastAPI API → Dependency assembly: assembles
controllers/router.py - Dependency assembly → Agent graph: wires
controllers/di.py - Request orchestrator → Agent graph: dispatches
- Agent graph → Agent supervisor: uses
graph/agent_graph.py - Agent graph → Agent steps: executes
graph/agent_graph.py - Agent steps → Specialized agents: selects agent
- Request orchestrator → Model selector: resolves model
README.md - Model selector → Inference service: selects for
README.md - Inference service → Ollama adapter: delegates to
- Ollama adapter → Local Ollama: generates with
README.md - Request orchestrator → Conversation history: persists conversation
README.md - Pipeline engine → Agent steps: runs steps
services/pipeline.py - Pipeline engine → RAG judge: evaluates response
services/pipeline.py - Pipeline engine → Execution traces: capitalizes trace
README.md - Pipeline engine → Vector memory: searches and updates
README.md - Document upload → Wiki ingestion: ingests documents
- Wiki ingestion → Text chunker: chunks text
services/wiki_ingest_service.py - Wiki ingestion → Vector memory: indexes documents
services/wiki_ingest_service.py - FastAPI API → System diagnostics: exposes diagnostics
- FastAPI API → External tool checks: exposes tools