Python SDK for the Kailash container-node architecture
Project description
Kailash Python SDK
A Pythonic SDK for the Kailash container-node architecture
Build workflows that seamlessly integrate with Kailash's production environment while maintaining the flexibility to prototype quickly and iterate locally.
โจ Highlights
- ๐ Rapid Prototyping: Create and test workflows locally without containerization
- ๐๏ธ Architecture-Aligned: Automatically ensures compliance with Kailash standards
- ๐ Seamless Handoff: Export prototypes directly to production-ready formats
- ๐ Real-time Monitoring: Live dashboards with WebSocket streaming and performance metrics
- ๐งฉ Extensible: Easy to create custom nodes for domain-specific operations
- โก Fast Installation: Uses
uvfor lightning-fast Python package management - ๐ค AI-Powered: Complete LLM agents, embeddings, and hierarchical RAG architecture
- ๐ง Retrieval-Augmented Generation: Full RAG pipeline with intelligent document processing
- ๐ REST API Wrapper: Expose any workflow as a production-ready API in 3 lines
- ๐ช Multi-Workflow Gateway: Manage multiple workflows through unified API with MCP integration
- ๐ค Self-Organizing Agents: Autonomous agent pools with intelligent team formation and convergence detection
- ๐ง Agent-to-Agent Communication: Shared memory pools and intelligent caching for coordinated multi-agent systems
- ๐ Production Security: Comprehensive security framework with path traversal prevention, code sandboxing, and audit logging
- ๐จ Visual Workflow Builder: Kailash Workflow Studio - drag-and-drop interface for creating and managing workflows (coming soon)
- ๐ Cyclic Workflows (v0.2.0): Universal Hybrid Cyclic Graph Architecture with 30,000+ iterations/second performance
- ๐ ๏ธ Developer Tools: CycleAnalyzer, CycleDebugger, CycleProfiler for production-ready cyclic workflows
- ๐ High Performance: Optimized execution engine supporting 100,000+ iteration workflows
- ๐ Complete Finance Workflow Library (v0.3.1): Production-ready financial workflows with AI analysis
- ๐ผ Enterprise Workflow Patterns: Credit risk, portfolio optimization, trading signals, fraud detection
๐ฏ Who Is This For?
The Kailash Python SDK is designed for:
- AI Business Coaches (ABCs) who need to prototype workflows quickly
- Data Scientists building ML pipelines compatible with production infrastructure
- Engineers who want to test Kailash workflows locally before deployment
- Teams looking to standardize their workflow development process
๐ Quick Start
Installation
Requirements: Python 3.11 or higher
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# For users: Install from PyPI
pip install kailash
# For developers: Clone and sync
git clone https://github.com/integrum/kailash-python-sdk.git
cd kailash-python-sdk
uv sync
# Set up SDK development infrastructure (optional but recommended)
./scripts/setup-sdk-environment.sh
Your First Workflow
from kailash.workflow import Workflow
from kailash.nodes.data import CSVReaderNode
from kailash.nodes.code import PythonCodeNode
from kailash.runtime.local import LocalRuntime
import pandas as pd
# Create a workflow
workflow = Workflow("customer_analysis", name="customer_analysis")
# Add data reader
reader = CSVReaderNode(file_path="customers.csv")
workflow.add_node("read_customers", reader)
# Add custom processing using Python code
def analyze_customers(data):
"""Analyze customer data and compute metrics."""
df = pd.DataFrame(data)
# Convert total_spent to numeric
df['total_spent'] = pd.to_numeric(df['total_spent'])
return {
"result": {
"total_customers": len(df),
"avg_spend": df["total_spent"].mean(),
"top_customers": df.nlargest(10, "total_spent").to_dict("records")
}
}
processor = PythonCodeNode(code=analyze_customers)
workflow.add_node("analyze", processor)
# Connect nodes
workflow.connect("read_customers", "analyze", mapping={"data": "data"})
# Run locally
runtime = LocalRuntime()
results, run_id = runtime.execute(workflow, parameters={
"read_customers": {"file_path": "customers.csv"}
})
print(f"Total customers: {results['analyze']['result']['total_customers']}")
print(f"Average spend: ${results['analyze']['result']['avg_spend']:.2f}")
Export to Production
# Export to Kailash container format
from kailash.utils.export import export_workflow
export_workflow(workflow, "customer_analysis.yaml")
๐ผ Finance Workflow Library (New in v0.3.1)
Complete production-ready financial workflows using AI and modern quantitative methods:
Credit Risk Assessment
from kailash.workflow import Workflow
from kailash.nodes.data import CSVReaderNode
from kailash.nodes.code import PythonCodeNode
from kailash.nodes.ai import LLMAgentNode
def calculate_risk_metrics(customers, transactions):
"""Calculate comprehensive risk metrics."""
# Modern risk scoring with AI analysis
# 100+ lines of production risk calculation
return {"result": risk_scores}
workflow = Workflow("credit-risk", "Credit Risk Assessment")
workflow.add_node("customer_reader", CSVReaderNode())
workflow.add_node("risk_calculator", PythonCodeNode.from_function(func=calculate_risk_metrics))
workflow.add_node("ai_analyzer", LLMAgentNode(model="gpt-4",
system_prompt="You are a financial risk expert..."))
Portfolio Optimization
def optimize_portfolio(holdings, market_data, risk_profile="moderate"):
"""Modern Portfolio Theory optimization with rebalancing."""
# Sharpe ratio optimization, correlation analysis
# Risk-adjusted returns with AI market insights
return {"result": optimization_plan}
workflow = Workflow("portfolio-opt", "Portfolio Optimization")
workflow.add_node("optimizer", PythonCodeNode.from_function(func=optimize_portfolio))
# Generates rebalancing trades, risk metrics, AI market analysis
Trading Signals & Fraud Detection
- Trading Signals: Technical indicators (RSI, MACD, Bollinger Bands) + AI sentiment
- Fraud Detection: Real-time transaction monitoring with velocity analysis
See complete examples: sdk-users/workflows/by-industry/finance/
๐ Documentation
For SDK Users
Build solutions with the SDK:
sdk-users/- Everything you need to build with Kailashdeveloper/- Node creation patterns and troubleshootingworkflows/- Complete production workflow library (v0.3.1)- Finance workflows: Credit risk, portfolio optimization, trading signals, fraud detection
- Quick-start patterns (30-second workflows)
- Industry-specific solutions by vertical
- Enterprise integration patterns
essentials/- Quick reference and cheatsheetsnodes/- Comprehensive node catalog (66+ nodes)patterns/- Architectural patterns
For SDK Contributors
Develop the SDK itself:
sdk-contributors/- Internal SDK development resourcesarchitecture/- ADRs and design decisionsproject/- TODOs and development trackingtraining/- LLM training examples
Shared Resources
shared/- Resources for both users and contributorsmistakes/- Common error patterns and solutionsfrontend/- UI development resources
Quick Links
- SDK User Guide - Build with the SDK
- SDK Contributor Guide - Develop the SDK
- API Documentation
- Examples
- Release Notes
๐ฅ Advanced Features
Cyclic Workflows (Enhanced in v0.2.2)
Build iterative workflows with the new CycleBuilder API:
# Create an optimization cycle
workflow.create_cycle("optimization_loop")
.connect("processor", "processor")
.max_iterations(100)
.converge_when("quality >= 0.95")
.timeout(30)
.build()
Self-Organizing Agent Pools
Create teams of AI agents that autonomously coordinate:
from kailash.nodes.ai import SelfOrganizingAgentPoolNode
agent_pool = SelfOrganizingAgentPoolNode(
formation_strategy="capability_matching",
convergence_strategy="quality_voting",
min_agents=3,
max_agents=10
)
workflow.add_node("agent_team", agent_pool)
Hierarchical RAG Pipeline
Build sophisticated document processing systems:
from kailash.nodes.data import DocumentSourceNode, HierarchicalChunkerNode
from kailash.nodes.ai import EmbeddingGeneratorNode
# Build a complete RAG pipeline
workflow.add_node("docs", DocumentSourceNode(directory="./knowledge"))
workflow.add_node("chunker", HierarchicalChunkerNode(chunk_size=512))
workflow.add_node("embedder", EmbeddingGeneratorNode(provider="openai"))
REST API Wrapper
Transform any workflow into a production API:
from kailash.api import WorkflowAPI
# Create API from workflow
api = WorkflowAPI(workflow, host="0.0.0.0", port=8000)
api.run()
# Your workflow is now available at:
# POST http://localhost:8000/execute
# GET http://localhost:8000/workflow/info
๐๏ธ Key Components
Nodes (60+ built-in)
- Data: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, DirectoryReaderNode
- Transform: DataTransformer, DataFrameFilter, DataFrameJoiner
- AI/ML: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode
- API: RESTClientNode, GraphQLNode, AuthNode
- Logic: SwitchNode, MergeNode, ConvergenceCheckerNode
- Code: PythonCodeNode, WorkflowNode
Runtimes
- LocalRuntime: Test workflows on your machine
- DockerRuntime: Run in containers (coming soon)
- ParallelRuntime: Execute nodes concurrently
- CyclicWorkflowExecutor: Optimized for iterative workflows
Visualization
- Mermaid diagrams: Workflow structure visualization
- Real-time dashboard: Monitor execution with WebSocket streaming
- Performance metrics: Track execution time, resource usage
๐งช Testing Your Workflows
# Use the testing runtime for unit tests
from kailash.runtime.testing import TestingRuntime
runtime = TestingRuntime()
runtime.set_mock_result("read_customers", {"data": test_data})
results, run_id = runtime.execute(workflow)
assert results["analyze"]["result"]["total_customers"] == len(test_data)
๐ข Production Deployment
-
Export your workflow:
export_workflow(workflow, "workflow.yaml", format="kailash")
-
Deploy to Kailash:
kailash deploy workflow.yaml --environment production
-
Monitor in real-time:
from kailash.visualization import DashboardServer server = DashboardServer(port=8080) server.start() # Open http://localhost:8080 for live monitoring
๐ค Contributing
We welcome contributions! We use a Claude Code-driven workflow for all team collaboration.
๐ New Team Member?
Start Here โ NEW_TEAM_MEMBER.md
For Contributors
- SDK Users: See sdk-users/CLAUDE.md for building with the SDK
- SDK Contributors: See sdk-contributors/CLAUDE.md for SDK development
- Team Collaboration: Use Claude Code Workflow System for all project management
Claude Code Workflow
All project management is done through conversational interaction with Claude Code:
- No manual TODO editing - Claude Code handles all updates
- No direct GitHub issues - Created through planning sessions
- All progress tracked - Through natural conversation
See Contributing Guide for complete details.
Development Setup
# Clone the repository
git clone https://github.com/integrum/kailash-python-sdk.git
cd kailash-python-sdk
# Install with development dependencies
uv sync
# Run tests
pytest
# Run linting
black .
isort .
ruff check .
# Test all examples
python scripts/test-all-examples.py
๐ Project Status
- โ Core workflow engine
- โ 60+ production-ready nodes
- โ Local and parallel runtimes
- โ Export to container format
- โ Real-time monitoring
- โ Comprehensive test suite (751 tests)
- โ Self-organizing agent systems
- โ Hierarchical RAG architecture
- โ REST API wrapper
- โ Cyclic workflow support with CycleBuilder API
- โ Production security framework
- โ Comprehensive workflow library (v0.2.2)
- ๐ง Visual workflow builder (in progress)
- ๐ง Docker runtime
- ๐ง Cloud deployment tools
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
Built with โค๏ธ by the Integrum team for the Kailash ecosystem.
Ready to build your first workflow? Check out our examples or dive into the documentation!
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 kailash-0.3.2.tar.gz.
File metadata
- Download URL: kailash-0.3.2.tar.gz
- Upload date:
- Size: 497.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a4562f5e20439f9cd790ec49b37f5d8adcaa577f16fe164302f82c1eec39235
|
|
| MD5 |
38395350c67973dc3bc4c8a52ae5aad1
|
|
| BLAKE2b-256 |
c799040eecceed0eed910d28ea707767ab05f2db7bc24f00b1d76d95890e2d4f
|
File details
Details for the file kailash-0.3.2-py3-none-any.whl.
File metadata
- Download URL: kailash-0.3.2-py3-none-any.whl
- Upload date:
- Size: 563.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcc9f8d5096128cffbc77f3089f6da1ced9d2b5cbc8b7a5c811bfe4ce23f8497
|
|
| MD5 |
cf32b68fddd1144ade5d40bf64ab0882
|
|
| BLAKE2b-256 |
f497019a9050bd121f27c8a5413e860dad3ab3c17cf6e8b1bb9913b7b5bfd628
|