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.
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?
- 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.
- True Physical Isolation: Code generated by the agent is executed in ephemeral, lazy-loaded Docker containers (
SandboxExecutor) with zero risk to the host machine. - Forensic Auditability: The
Ledgerrecords every token, latency, and tool execution. You never wonder "Why did the agent do that?". You have the mathematical proof. - Fractal Swarms: Agents can invoke other Blueprints as tools (
SubAgentExecutor), creating hierarchical teams natively.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e15773bcbcb726f3c87a0dbf01653bb801b902f98bfc6bbea100b9931e31fa0e
|
|
| MD5 |
876ea8b6909a1c95f7d79599f01fd539
|
|
| BLAKE2b-256 |
68d5953fe80593fb7a947c8e2a9ef6c91da7ab8707e6010bb9bb3c38484767d4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
637b48f5720b0f998c3e0b92e7c81d48a9b0be827b35bf99b5f529d61b39cce5
|
|
| MD5 |
a7f0144f281e102c3b62dfa5d8f142b5
|
|
| BLAKE2b-256 |
e692f8c8c8f078d0d885e0b3e8550d8f7f467f17742b382e9ef877133a3caba4
|