Skip to main content

The kernel layer for production AI agents - protocol-based, type-safe, zero framework lock-in

Project description

lionpride

PyPI version Python License CI codecov Code style: ruff

Production-ready primitives for multi-agent workflow orchestration.

Alpha Release - API stabilizing. Originated from lionagi v0, elevated and hardened for production use.

Features

  • Model Agnostic - Built-in providers for OpenAI-compatible APIs, Anthropic, Gemini
  • LNDL - Domain-specific language for LLM structured output and enhanced reasoning
  • Declarative Workflows - Report/Form system for multi-step agent pipelines
  • Async Native - Operation graph building, dependency-aware execution
  • Modular Architecture - Protocol-based composition, zero framework lock-in
  • 99%+ Test Coverage - Production-hardened with comprehensive test suites

Installation

pip install lionpride

Quick Start

import asyncio
from lionpride import Session, iModel

# Create model and session
model = iModel(provider="openai", model="gpt-4o-mini")
session = Session(default_generate_model=model)

# Create branch with model access
branch = session.create_branch(name="main")

# Conduct an operation
async def main():
    result = await session.conduct(
        "operate",
        branch,
        instruction="What is 2 + 2?",
    )
    print(result)

asyncio.run(main())

Core Concepts

Session & Branch

Session orchestrates messages, services, and operations. Branch is a named conversation thread with access control.

from lionpride import Session, iModel

# Session with default model
model = iModel(provider="openai", model="gpt-4o-mini")
session = Session(default_generate_model=model)

# Branch inherits access to default model
branch = session.create_branch(
    name="analysis",
    capabilities={"MyOutputSchema"},  # Allowed output types
)

Operations

Operations are composable building blocks for agent workflows:

from lionpride.operations.operate import operate, OperateParams, CommunicateParams, GenerateParams

# Structured output with validation
params = OperateParams(
    communicate=CommunicateParams(
        generate=GenerateParams(
            instruction="Analyze this data and return insights",
            request_model=MyInsightsModel,  # Pydantic model for validation
        )
    )
)

result = await operate(session, branch, params)

Services

ServiceRegistry manages models and tools with O(1) name lookup:

from lionpride import Session, iModel, ServiceRegistry

# Register multiple models
registry = ServiceRegistry()
registry.register(iModel(provider="openai", model="gpt-4o", name="gpt4"))
registry.register(iModel(provider="anthropic", model="claude-3-5-sonnet", name="claude"))

session = Session(services=registry)
branch = session.create_branch(resources={"gpt4", "claude"})  # Access to both

Declarative Workflows

Report and Form enable multi-step agent pipelines with automatic dependency resolution:

from pydantic import BaseModel
from lionpride.work import Report, flow_report

class Analysis(BaseModel):
    summary: str
    score: float

class MyReport(Report):
    analysis: Analysis | None = None  # Schema attribute

    assignment: str = "topic -> analysis"
    form_assignments: list[str] = ["topic -> analysis"]

report = MyReport()
report.initialize(topic="AI coding assistants")
result = await flow_report(session, branch, report)

Architecture

lionpride/
├── core/           # Primitives: Element, Pile, Flow, Graph, Event
├── session/        # Session, Branch, Message management
├── services/       # iModel, Tool, ServiceRegistry, MCP integration
├── operations/     # operate, react, communicate, generate, parse
├── work/           # Declarative workflows: Report, Form, flow_report
├── rules/          # Validation rules and auto-correction
├── types/          # Spec, Operable, type system
├── lndl/           # LNDL parser and resolver
└── ln/             # Utility functions

See CLAUDE.md for detailed codebase navigation.

Documentation

Roadmap

  • Formal mathematical framework for agent composition
  • Rust core for performance-critical paths
  • Enhanced MCP (Model Context Protocol) support

License

Apache-2.0

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

lionpride-1.0.0a1.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

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

lionpride-1.0.0a1-py3-none-any.whl (300.0 kB view details)

Uploaded Python 3

File details

Details for the file lionpride-1.0.0a1.tar.gz.

File metadata

  • Download URL: lionpride-1.0.0a1.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for lionpride-1.0.0a1.tar.gz
Algorithm Hash digest
SHA256 f8475f96ab4b41dae3815e30f9ffae39f623560e328b3c520eb96c3dd8942a08
MD5 48aace9056fe86233597ee77a310df69
BLAKE2b-256 75ec09fda5ff329dd86d7599bae55dbefd172afa180d5131b0c7ebeca1fb7479

See more details on using hashes here.

File details

Details for the file lionpride-1.0.0a1-py3-none-any.whl.

File metadata

  • Download URL: lionpride-1.0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 300.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for lionpride-1.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 f377e70367a311efff72ec2bd7f405c3aa1bb863c568283440e83c3dd478d5c7
MD5 c792940c2bf8b173e59249774ddc7b3b
BLAKE2b-256 cb6513a3ce177cec4b98f41327952406efdfb498f038a84058eca9e2f6b187a6

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