Skip to main content

Orchestrate multi-agent systems with peer-to-peer coordination, unified memory, and built-in auth.

Reason this release was yanked:

Yanked pending corrected release

Project description

JarvisCore

Build, orchestrate, and deploy multi-agent systems with peer-to-peer coordination, unified memory, 46 prebuilt service bundles (237 atoms), and full observability.

PyPI Python License Docs


What is JarvisCore?

JarvisCore is a Python framework for building AI agent systems that can plan, reason, execute code, browse the web, search the internet, and connect to 46 external services out of the box. A single agent runs with three attributes. A fleet scales across machines with peer-to-peer discovery, shared memory, and crash recovery.

Installation

pip install jarviscore-framework

# With Redis support (required for distributed features)
pip install "jarviscore-framework[redis]"

# With Prometheus metrics
pip install "jarviscore-framework[prometheus]"

# Everything
pip install "jarviscore-framework[redis,prometheus]"

Quick Start

# Scaffold a new project with example agents
jarviscore init --examples
cp .env.example .env
# Add your LLM API key to .env (AZURE_API_KEY, OPENAI_API_KEY, or GEMINI_API_KEY)

# Start shared infrastructure (Redis, Mongo, Prometheus, Grafana)
docker compose -f docker-compose.infra.yml up -d

# Start Nexus Gateway locally (generates keys and updates .env)
jarviscore nexus init

# Validate installation
jarviscore check --validate-llm

AutoAgent (3 attributes, zero boilerplate)

from jarviscore import Mesh
from jarviscore.profiles import AutoAgent

class CalculatorAgent(AutoAgent):
    role = "calculator"
    capabilities = ["math"]
    system_prompt = "You are a math expert. Store result in 'result'."

mesh = Mesh()
mesh.add(CalculatorAgent)
await mesh.start()

results = await mesh.workflow("calc", [
    {"agent": "calculator", "task": "Calculate factorial of 10"}
])
print(results[0]["output"])  # 3628800

CustomAgent (full control)

from jarviscore import Mesh
from jarviscore.profiles import CustomAgent

class ProcessorAgent(CustomAgent):
    role = "processor"
    capabilities = ["processing"]

    async def execute_task(self, task):
        data = task.get("params", {}).get("data", [])
        return {"status": "success", "output": [x * 2 for x in data]}

mesh = Mesh()
mesh.add(ProcessorAgent)
await mesh.start()

results = await mesh.workflow("demo", [
    {"agent": "processor", "task": "Process", "params": {"data": [1, 2, 3]}}
])
print(results[0]["output"])  # [2, 4, 6]

Features

Agent Profiles

Profile You Write JarvisCore Handles
AutoAgent role, capabilities, system_prompt Kernel OODA loop, tool generation, sandboxed execution, self-repair, planning
CustomAgent execute_task() and/or on_peer_request() Mesh routing, discovery, lifecycle, full infrastructure injection

Kernel and Planning

The Kernel runs an Observe-Orient-Decide-Act (OODA) loop for every AutoAgent task. In v1.0.3, the loop is backed by a dedicated Planner and StepEvaluator that use model tier routing to balance cost and reasoning depth.

Component Purpose
Planner Decomposes goals into executable steps using heavy-tier models
StepEvaluator Classifies step outcomes using nano-tier models for fast, cheap evaluation
GoalContext Tracks plan state, step history, and convergence signals
EpistemicLedger Records what the agent knows, assumes, and has verified

Service Integrations (46 bundles, 237 atoms)

Every integration is a single-file Python function called an atom. Atoms are registered in the seed registry and discovered by agents at runtime. No SDK wiring required.

View all 46 integration bundles
Category Bundles
CRM and Sales Salesforce, HubSpot, Apollo, Oracle CX, Dynamics 365
Project Management Jira, Linear, ClickUp, Todoist, Notion, Airtable
Communication Slack, Discord, Gmail, MS Graph (Teams/Outlook), Webex, Brevo
Developer Tools GitHub, Confluence, Serper (web search)
Cloud Storage Google Drive, Google Sheets, Dropbox, Azure Blob Storage
Finance and Accounting Stripe, QuickBooks, FreshBooks, Zoho Books, NetSuite
ERP SAP, Oracle ERP, Odoo
HR BambooHR, Zoho People, Zoho Shifts
Social and Content LinkedIn, LinkedIn Ads, Twitter/X, YouTube, Reddit
Meetings Zoom, Google Calendar
Email Marketing Mailchimp, SendGrid
Healthcare OpenMRS
Government KRA (Kenya Revenue Authority)
# List all registered atoms
jarviscore atom list

# Test a custom atom before registration
jarviscore atom test my_atoms/fetch_orders.py

Browser Automation

Agents can launch headless browser sessions for web research, form filling, and scraping. The BrowserSubAgent uses CUA-capable models (Gemini Computer Use, gpt-5.4-mini) or falls back to any multimodal model with vision.

# Set in .env
BROWSER_ENABLED=true
BROWSER_MODEL=gemini-2.5-computer-use

Internet Search

Built-in internet search via Gemini Grounded Search or Serper. Agents call it as a standard tool during task execution.

# Set in .env (pick one)
GEMINI_API_KEY=...         # Gemini Grounded Search (primary)
SERPER_API_KEY=...         # Serper fallback

RAG Pipeline

Chunk documents, generate embeddings, and store them in a local FAISS index. Agents query the index during task execution to ground responses in source material.

Unified Memory

Layer Purpose
WorkingScratchpad Short-lived key-value store for the current task
EpisodicLedger Append-only event log for agent history
LongTermMemory Persistent Redis-backed storage across sessions
Athena Structured knowledge graph with heat-based scoring and cross-agent memory sharing

Nexus Credentials

Nexus is the built-in credential manager. It stores OAuth tokens and API keys, encrypts them with a per-deployment secret, and injects them into atoms at runtime. Agents never handle raw credentials.

class MyAgent(CustomAgent):
    requires_auth = True  # Nexus credentials injected automatically

P2P Mesh and Distributed Workflows

Agents discover each other over a SWIM protocol gossip mesh using ZMQ transport. Workflows execute across machines with Redis-backed crash recovery and step claiming.

mesh = Mesh(config={
    "p2p_enabled": True,
    "bind_port": 7950,
    "redis_url": "redis://localhost:6379/0",
})

Observability

Signal Backend
Traces TraceManager writes to Redis and JSONL files
Metrics Prometheus counters and histograms per step
Logs Structured JSON logging via LOG_LEVEL

Infrastructure Stack

Every agent receives the full infrastructure stack automatically through dependency injection. No manual wiring required.

Feature Injected as Enabled by
Blob storage self._blob_storage STORAGE_BACKEND=local (default)
Context distillation TruthContext, ContextManager Automatic
Telemetry and tracing TraceManager Automatic (PROMETHEUS_ENABLED for metrics)
Mailbox messaging self.mailbox REDIS_URL
Function registry self.code_registry Automatic (AutoAgent)
Kernel OODA loop Kernel Automatic (AutoAgent)
Distributed workflow WorkflowEngine REDIS_URL
Nexus credentials self._auth_manager requires_auth=True + NEXUS_GATEWAY_URL
Unified memory UnifiedMemory, EpisodicLedger, LTM REDIS_URL

CLI Reference

jarviscore init              # Scaffold a new project (.env.example + optional examples)
jarviscore check             # Validate environment and provider connectivity
jarviscore check --validate-llm  # Also test LLM round-trip
jarviscore smoketest         # Quick end-to-end smoke test
jarviscore atom list         # List all registered integration atoms
jarviscore atom test         # Validate atom structure or live Nexus connection
jarviscore nexus init        # Generate keys and start Nexus Gateway via Docker
jarviscore nexus status      # Check Nexus Gateway health
jarviscore nexus register    # Register an OAuth provider (e.g. github, slack)
jarviscore nexus list        # List registered providers
jarviscore nexus test        # Open browser OAuth flow for a provider
jarviscore memory init       # Initialize Athena MemOS backend
jarviscore memory status     # Check Athena health
jarviscore memory search     # Query the knowledge graph

Framework Integrations

JarvisCore is async-first. It integrates directly with async web frameworks.

Framework Integration
FastAPI JarvisLifespan via jarviscore.integrations.fastapi (3 lines)
aiohttp, Quart, Tornado Manual lifecycle (see docs)
Flask, Django Background thread pattern (see docs)
from fastapi import FastAPI
from jarviscore.profiles import CustomAgent
from jarviscore.integrations.fastapi import JarvisLifespan

class ProcessorAgent(CustomAgent):
    role = "processor"
    capabilities = ["processing"]

    async def on_peer_request(self, msg):
        return {"result": msg.data.get("task", "").upper()}

app = FastAPI(lifespan=JarvisLifespan(ProcessorAgent()))

Production Deployment

For production, set these environment variables instead of relying on development defaults:

NEXUS_SECRET=<long-random-string>       # Do not rely on machine-UUID fallback
NEXUS_GATEWAY_URL=https://nexus.yours   # Point to your deployed Nexus Gateway
REDIS_URL=redis://<persistent-host>     # External Redis with persistence enabled
STORAGE_BACKEND=azure                   # Or mount a persistent volume for local mode
SANDBOX_MODE=remote                     # Isolate code execution from the host
LOG_LEVEL=INFO                          # Avoid token content in logs

See the Production Deployment Guide for the full checklist, fleet scaling, and kernel tuning.

Documentation

https://jarviscore.developers.prescottdata.io/

Section Description
Getting Started Install, scaffold, and run your first agent in 5 minutes
Concepts Architecture, model routing, planning, memory, Nexus
Guides AutoAgent, CustomAgent, workflows, HITL, browser, testing, production
Integrations All 46 service bundles with usage examples
Reference Agent API, CLI, configuration, and troubleshooting
Changelog Full release history

Examples

All examples require Redis (docker compose -f docker-compose.infra.yml up -d).

# Financial pipeline (single process, AutoAgent)
python examples/financial_pipeline.py

# 4-node distributed research network
python examples/research_synthesizer.py &
python examples/research_node_1.py &
python examples/research_node_2.py &
python examples/research_node_3.py &

# Customer support swarm (P2P + Nexus auth)
python examples/support_swarm.py

# Investment Committee: 7-agent workflow with web dashboard
cd examples/investment_committee
python committee.py --mode full --ticker NVDA --amount 1500000

Version

1.0.3

License

Apache 2.0. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jarviscore_framework-1.0.4.tar.gz (956.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jarviscore_framework-1.0.4-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file jarviscore_framework-1.0.4.tar.gz.

File metadata

  • Download URL: jarviscore_framework-1.0.4.tar.gz
  • Upload date:
  • Size: 956.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jarviscore_framework-1.0.4.tar.gz
Algorithm Hash digest
SHA256 b1078a4b5870ea058a48f40875afb692a75c67436feed418af934c8c33a250ab
MD5 b8b314da1b668de545c401fc8e0ac191
BLAKE2b-256 d1eddc8a576740e5c9afd07ee9b5372807255226cdb1a4b59b95c7260513cec1

See more details on using hashes here.

File details

Details for the file jarviscore_framework-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for jarviscore_framework-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3a63be51b16a75ef2ee3ab36bcb58742fbd2e57b1420a143bfd09be9dc5a6017
MD5 f661a02c5bb0f10d8c46991c653188fc
BLAKE2b-256 835ac6c3c74234993bbab0952e0cac8dbab1dcccafd76b9d5abc530abc82a7a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page