mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-30 02:42:16 +00:00
Sets up a complete documentation website with 7 navigable sections (Home, Getting Started, User Guide, Architecture, API Reference, Deployment, Development), light/dark mode, search, code copy, and Mermaid diagram support. API reference pages use mkdocstrings to auto-generate docs from source docstrings. GitHub Actions workflow deploys to GitHub Pages on push to main. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 KiB
10 KiB
Changelog
All notable changes to OpenJarvis are documented in this file.
v1.0.0
Phase 5 -- SDK, Production Readiness, and Documentation
Added
- Python SDK --
Jarvisclass providing a high-level sync API for programmatic useask()/ask_full()methods for direct engine and agent mode queriesMemoryHandleproxy for lazy memory backend initializationlist_models()andlist_engines()for runtime introspection- Router policy selection via config (
learning.default_policy) - Lazy engine initialization with automatic discovery and health probing
- Resource cleanup via
close()
- OpenClaw agent infrastructure
OpenClawAgentwith HTTP and subprocess transportsProtocolMessagedataclass with JSON-line serialization/deserializationMessageTypeenum for structured agent communicationHttpTransportfor HTTP POST-based communication with OpenClaw serversSubprocessTransportfor Node.js stdin/stdout communicationProviderPluginwrapping inference engines for OpenClawMemorySearchManagerwrapping memory backends for OpenClaw
- Benchmarking framework
BaseBenchmarkABC andBenchmarkSuiterunnerLatencyBenchmarkmeasuring per-call latency (mean, p50, p95, min, max)ThroughputBenchmarkmeasuring tokens-per-second throughputBenchmarkResultdataclass with JSONL exportjarvis bench runCLI with options for model, engine, sample count, benchmark selection, and JSON/JSONL output
- Docker deployment
Dockerfile-- Multi-stage Python 3.12-slim build with[server]extraDockerfile.gpu-- NVIDIA CUDA 12.4 runtime variantdocker-compose.yml-- Services forjarvis(port 8000) andollama(port 11434)deploy/systemd/openjarvis.service-- systemd unit file for Linuxdeploy/launchd/com.openjarvis.plist-- launchd plist for macOS
- Documentation site -- MkDocs Material with mkdocstrings, covering getting started, user guide, architecture, API reference, deployment, and development
v0.5.0
Phase 4 -- Learning, Telemetry, and Router Policies
Added
- Learning system
RouterPolicyABC andRoutingContextdataclassRewardFunctionABC for scoring inference resultsHeuristicRewardFunctionscoring on latency, cost, and efficiencyRouterPolicyRegistryfor pluggable routing strategiesHeuristicRouterregistered as"heuristic"policy (6 priority rules: code detection, math detection, short/long queries, urgency override, default fallback)TraceDrivenPolicyregistered as"learned"policy with batch updates viaupdate_from_traces()and online updates viaobserve()GRPORouterPolicystub registered as"grpo"for future RL trainingensure_registered()pattern for lazy, test-safe registration
- Telemetry aggregation
TelemetryAggregatorwithper_model_stats(),per_engine_stats(),top_models(),summary(),export_records(), andclear()methods- Time-range filtering via
since/untilparameters ModelStatsandEngineStatsdataclassesAggregatedStatssummary dataclass
- CLI enhancements
--routerflag onjarvis askfor explicit policy selectionjarvis telemetry stats-- display aggregated telemetry statisticsjarvis telemetry export --format json|csv-- export telemetry recordsjarvis telemetry clear --yes-- delete all telemetry records
v0.4.0
Phase 3 -- Agents, Tools, and API Server
Added
- Agent system
BaseAgentABC withrun()method returningAgentResultAgentContextdataclass with conversation, tools, and memory resultsAgentResultdataclass with content, tool results, turns, and metadataAgentRegistryfor pluggable agent implementationsSimpleAgent-- single-turn query-to-response, no tool callingOrchestratorAgent-- multi-turn tool-calling loop withToolExecutor, configurablemax_turnsCustomAgent-- template for user-defined agent behaviorOpenClawAgent-- transport-based agent with tool-call loop and event bus integration
- Tool system
BaseToolABC withspecproperty andexecute()methodToolSpecdataclass describing tool interface and characteristicsToolExecutordispatch engine with JSON argument parsing, latency tracking, and event bus integration (TOOL_CALL_START/TOOL_CALL_END)ToolRegistryfor tool discoveryto_openai_function()method for OpenAI function calling format- Built-in tools:
CalculatorTool-- safe math evaluation via AST parsingThinkTool-- reasoning scratchpad for chain-of-thoughtRetrievalTool-- memory search integrationLLMTool-- sub-model calls within agent loopsFileReadTool-- safe file reading with path validation
- OpenAI-compatible API server (
jarvis serve)- FastAPI + Uvicorn with optional
[server]extra POST /v1/chat/completions-- non-streaming and SSE streamingGET /v1/models-- list available modelsGET /health-- health check endpoint- Pydantic request/response models matching OpenAI API format
- FastAPI + Uvicorn with optional
v0.3.0
Phase 2 -- Memory System
Added
- Memory backends
MemoryBackendABC withstore(),retrieve(),delete(),clear()RetrievalResultdataclass with content, score, source, and metadataMemoryRegistryfor backend discoverySQLiteMemory-- zero-dependency default using SQLite FTS5 with BM25 ranking and FTS5 query escapingFAISSMemory-- vector search using FAISS with sentence-transformers embeddings (optional[memory-faiss]extra)ColBERTMemory-- ColBERTv2 neural retrieval backend (optional[memory-colbert]extra)BM25Memory-- BM25 ranking backend using rank-bm25 (optional[memory-bm25]extra)HybridMemory-- Reciprocal Rank Fusion combining multiple backends
- Document processing
ChunkConfigdataclass for chunk size and overlap settingschunk_text()for splitting documents into overlapping chunksingest_path()for recursively indexing files and directoriesread_document()with support for plain text, Markdown, and PDF (optional[memory-pdf]extra)
- Context injection
ContextConfigwith top-k, minimum score, and max context token settingsinject_context()for prepending memory results as system messages with source attribution--no-contextflag onjarvis askto disable injection
- CLI commands
jarvis memory index <path>-- index documents into memoryjarvis memory search <query>-- search memory for relevant chunksjarvis memory stats-- show backend statistics
- Event bus integration --
MEMORY_STOREandMEMORY_RETRIEVEevents
v0.2.0
Phase 1 -- Intelligence and Inference
Added
- Intelligence pillar
ModelSpecdataclass with parameter count, context length, quantization, VRAM requirements, and supported enginesModelRegistryfor model metadata storageBUILTIN_MODELScatalog with pre-defined model specificationsregister_builtin_models()andmerge_discovered_models()helpersHeuristicRouterwith rule-based model selectionbuild_routing_context()for query analysis (code detection, math detection, length classification)
- Inference engines
InferenceEngineABC withgenerate(),stream(),list_models(), andhealth()methodsEngineRegistryfor engine discoveryOllamaEngine-- Ollama backend via native HTTP API with tool call extractionVllmEngine-- vLLM backend via OpenAI-compatible APILlamaCppEngine-- llama.cpp server backendEngineConnectionErrorfor unreachable enginesmessages_to_dicts()for Message-to-OpenAI-format conversion
- Engine discovery
discover_engines()-- probe all registered engines for healthdiscover_models()-- aggregate model lists across enginesget_engine()-- get configured default with automatic fallback
- Hardware detection
- NVIDIA GPU detection via
nvidia-smi - AMD GPU detection via
rocm-smi - Apple Silicon detection via
system_profiler - CPU brand detection via
/proc/cpuinfoandsysctl recommend_engine()mapping hardware to best engine
- NVIDIA GPU detection via
- Telemetry
TelemetryRecorddataclass with timing, tokens, energy, and costTelemetryStorewith SQLite persistence and EventBus subscriptioninstrumented_generate()wrapper for automatic telemetry recording
- CLI
jarvis ask <query>-- query via discovered enginejarvis ask --agent simple <query>-- route through SimpleAgentjarvis model list-- list models from running enginesjarvis model info <model>-- show model details
v0.1.0
Phase 0 -- Project Scaffolding
Added
- Project structure --
hatchlingbuild backend,uvpackage manager,pyproject.tomlwith extras for optional backends - Registry system --
RegistryBase[T]generic base class with class-specific entry isolation,register()decorator,get(),create(),items(),keys(),contains(),clear()methods - Typed registries --
ModelRegistry,EngineRegistry,MemoryRegistry,AgentRegistry,ToolRegistry,RouterPolicyRegistry,BenchmarkRegistry - Core types --
Roleenum,Message,Conversation(with sliding window),ModelSpec,Quantizationenum,ToolCall,ToolResult,TelemetryRecord,StepTypeenum,TraceStep,Trace - Configuration --
JarvisConfigdataclass hierarchy, TOML loader with overlay semantics, hardware auto-detection,generate_default_toml()forjarvis init - Event bus -- Synchronous pub/sub
EventBuswithEventTypeenum for inter-pillar communication - CLI skeleton -- Click-based
jarviscommand group with--version,--help, andinitsubcommand