Skip to main content

Xulcan Agent OS - A State-of-the-Art LLM Agent Framework

Reason this release was yanked:

Package under heavy development and architectural restructuring. Please check back later.

Project description

Xulcan

English ๐Ÿ‡ฌ๐Ÿ‡ง ยท Spanish ๐Ÿ‡ฒ๐Ÿ‡ฝ

The Deterministic Operating System for AI Agents.

Xulcan is a strict, type-safe Agentic Operating System (Agentic OS) designed from the ground up for engineering and production environments. Based on the principles of Domain-Driven Design (DDD) and Cybernetics, it treats Agents as Data, History as an Immutable Ledger, and Execution as a deterministic state machine.

License Architecture Core Python


The Concept: The Agentic OS ๐Ÿ–ฅ๏ธ

Understanding Xulcan is easy if you map it to classical computer architecture (Von Neumann). We separate the chaos of LLMs from the strictness of software engineering:

OS Module The AI Equivalent Description
CPU (ALU) LLM Adapters The models (Gemini, Ollama). They are stateless, isolated, and only process semantics to output intentions (ToolCalls).
Kernel / FSM ProtoKernel The execution loop. It manages token budgets, mitigates entropy, handles errors safely, and orchestrates the state machine.
RAM (Memory) StateStore / Blackboard Ephemeral shared memory. Allows passing huge payloads (like APIs or PDFs) by reference instead of burning LLM tokens.
Peripherals Sandbox / Network The "Hands". Sandboxed Docker containers and network executors that safely interact with the real world.
Hard Drive The Ledger An immutable, append-only Event Sourcing log of every thought and action. Enables forensic auditability.

Infrastructure as Code (IaC) for Agents ๐Ÿ“œ

Xulcan separates the Software Engineering from the Prompt Engineering. Agents are not hardcoded in Python; they are defined in YAML manifests.

# manifests/analyst_agent.yaml
name: "Financial Analyst"
model_provider: "google"
model_name: "gemini-2.5-flash"
system_prompt: "You are an expert analyst. Use your sandbox to calculate..."
tools:
  - name: "network_api_get"
    enabled: true
  - name: "sandbox_run_bash"
    enabled: true

Just load the manifest and let the OS handle the rest.


Quick Start

Prerequisites

  • Docker & Docker Compose
  • Make (Linux/Mac/WSL2)
  • Python 3.11+

Option A: Standalone Usage (Python Script)

Perfect for testing and running agents locally.

# 1. Clone & Install
git clone https://github.com/ActraStride/xulcan.git
cd xulcan
pip install -e .

# 2. Run the demo agent
python demo.py

Option B: Server Deployment (FastAPI)

Launch the full Nivel 2 B2B infrastructure with Postgres and Redis.

# Start the Xulcan API and Databases
make dev

# Verify the OS is alive
curl http://localhost:8000/health/live

Project Structure

The codebase strictly follows Hexagonal Architecture. Upper levels depend on lower levels, never the reverse.

xulcan/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ xulcan/
โ”‚   โ”‚   โ”œโ”€โ”€ core/          # Level 0: Primitives & Economics
โ”‚   โ”‚   โ”œโ”€โ”€ protocol/      # Level 1: Messages & Tools Schemas
โ”‚   โ”‚   โ”œโ”€โ”€ blueprint/     # Level 1: YAML Loaders & Agent Naming
โ”‚   โ”‚   โ”œโ”€โ”€ ledger/        # Level 2: Event Sourcing & Auditability
โ”‚   โ”‚   โ”œโ”€โ”€ memory/        # Level 2: StateStore (Blackboard)
โ”‚   โ”‚   โ”œโ”€โ”€ llm/           # Level 3: Stateless Adapters (Gemini, Ollama)
โ”‚   โ”‚   โ”œโ”€โ”€ tools/         # Level 3: Executors (Docker Sandbox, Network)
โ”‚   โ”‚   โ””โ”€โ”€ kernel/        # Level 3: The FSM Runtime Engine
โ”‚   โ””โ”€โ”€ main.py            # FastAPI Entrypoint (Wrapper)
โ”œโ”€โ”€ manifests/             # ๐Ÿ“œ IaC Agent Definitions (YAML)
โ”œโ”€โ”€ demo.py                # Standalone Client Example
โ”œโ”€โ”€ tests/                 # Pytest suite
โ”œโ”€โ”€ docker-compose.yaml
โ””โ”€โ”€ Makefile

Why Xulcan?

  1. Strict Entropy Control: The LLM does not dictate the flow. The Kernel's Finite State Machine (FSM) traps errors, prevents infinite loops, and forces determinism.
  2. True Physical Isolation: Code generated by the agent is executed in ephemeral, lazy-loaded Docker containers (SandboxExecutor) with zero risk to the host machine.
  3. Forensic Auditability: The Ledger records every token, latency, and tool execution. You never wonder "Why did the agent do that?". You have the mathematical proof.
  4. Fractal Swarms: Agents can invoke other Blueprints as tools (SubAgentExecutor), creating hierarchical teams natively.

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

xulcan-0.2.0.tar.gz (114.8 kB view details)

Uploaded Source

Built Distribution

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

xulcan-0.2.0-py3-none-any.whl (139.5 kB view details)

Uploaded Python 3

File details

Details for the file xulcan-0.2.0.tar.gz.

File metadata

  • Download URL: xulcan-0.2.0.tar.gz
  • Upload date:
  • Size: 114.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for xulcan-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e15773bcbcb726f3c87a0dbf01653bb801b902f98bfc6bbea100b9931e31fa0e
MD5 876ea8b6909a1c95f7d79599f01fd539
BLAKE2b-256 68d5953fe80593fb7a947c8e2a9ef6c91da7ab8707e6010bb9bb3c38484767d4

See more details on using hashes here.

File details

Details for the file xulcan-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: xulcan-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 139.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for xulcan-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 637b48f5720b0f998c3e0b92e7c81d48a9b0be827b35bf99b5f529d61b39cce5
MD5 a7f0144f281e102c3b62dfa5d8f142b5
BLAKE2b-256 e692f8c8c8f078d0d885e0b3e8550d8f7f467f17742b382e9ef877133a3caba4

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