Metadata-Version: 2.4
Name: sagewai
Version: 0.1.1
Summary: Open-source AI agent platform for production workloads — full-stack, durable, safe, and model-agnostic.
Project-URL: Homepage, https://sagewai.ai
Project-URL: Documentation, https://docs.sagewai.ai
Project-URL: Repository, https://github.com/sagewai/sagewai
Project-URL: Issues, https://github.com/sagewai/sagewai/issues
Project-URL: Changelog, https://github.com/sagewai/sagewai/blob/main/CHANGELOG.md
Author-email: Ali Arda Diri <arda@sagewai.ai>
License: AGPL-3.0-or-later
Keywords: agentic,agents,ai,enterprise,llm,mcp,model-context-protocol,orchestration,rag,workflows
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: click>=8.3.1
Requires-Dist: google-genai>=1.0.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: litellm<1.84,>=1.30.0
Requires-Dist: opentelemetry-api>=1.39.1
Requires-Dist: opentelemetry-sdk>=1.39.1
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyjwt>=2.11.0
Requires-Dist: pymilvus>=2.6.9
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: tenacity>=8.2.0
Provides-Extra: all
Requires-Dist: alembic>=1.13.0; extra == 'all'
Requires-Dist: asyncpg>=0.29.0; extra == 'all'
Requires-Dist: boto3>=1.28.0; extra == 'all'
Requires-Dist: docling>=2.0.0; extra == 'all'
Requires-Dist: fastapi>=0.100.0; extra == 'all'
Requires-Dist: faster-whisper>=1.0.0; extra == 'all'
Requires-Dist: gliner>=0.2.0; extra == 'all'
Requires-Dist: google-cloud-storage>=2.10.0; extra == 'all'
Requires-Dist: lingua-language-detector>=2.0.0; extra == 'all'
Requires-Dist: nebula3-python>=3.5.0; extra == 'all'
Requires-Dist: pillow>=10.0.0; extra == 'all'
Requires-Dist: prometheus-client>=0.20.0; extra == 'all'
Requires-Dist: pymilvus>=2.3.0; extra == 'all'
Requires-Dist: sentence-transformers>=3.0.0; extra == 'all'
Requires-Dist: sqlalchemy[asyncio]>=2.0.0; extra == 'all'
Requires-Dist: sse-starlette>=1.6.0; extra == 'all'
Requires-Dist: tiktoken>=0.5.0; extra == 'all'
Requires-Dist: tree-sitter-languages>=1.10.0; extra == 'all'
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.100.0; extra == 'fastapi'
Requires-Dist: sse-starlette>=1.6.0; extra == 'fastapi'
Provides-Extra: intelligence
Requires-Dist: gliner>=0.2.0; extra == 'intelligence'
Requires-Dist: lingua-language-detector>=2.0.0; extra == 'intelligence'
Requires-Dist: sentence-transformers>=3.0.0; extra == 'intelligence'
Provides-Extra: intelligence-full
Requires-Dist: faster-whisper>=1.0.0; extra == 'intelligence-full'
Requires-Dist: gliner>=0.2.0; extra == 'intelligence-full'
Requires-Dist: lingua-language-detector>=2.0.0; extra == 'intelligence-full'
Requires-Dist: pillow>=10.0.0; extra == 'intelligence-full'
Requires-Dist: sentence-transformers>=3.0.0; extra == 'intelligence-full'
Requires-Dist: torch>=2.0.0; extra == 'intelligence-full'
Requires-Dist: transformers>=4.40.0; extra == 'intelligence-full'
Provides-Extra: memory
Requires-Dist: docling>=2.0.0; extra == 'memory'
Requires-Dist: nebula3-python>=3.5.0; extra == 'memory'
Requires-Dist: pymilvus>=2.3.0; extra == 'memory'
Requires-Dist: tiktoken>=0.5.0; extra == 'memory'
Requires-Dist: tree-sitter-languages>=1.10.0; extra == 'memory'
Provides-Extra: multimodal
Requires-Dist: faster-whisper>=1.0.0; extra == 'multimodal'
Requires-Dist: pillow>=10.0.0; extra == 'multimodal'
Provides-Extra: postgres
Requires-Dist: alembic>=1.13.0; extra == 'postgres'
Requires-Dist: asyncpg>=0.29.0; extra == 'postgres'
Requires-Dist: sqlalchemy[asyncio]>=2.0.0; extra == 'postgres'
Provides-Extra: prometheus
Requires-Dist: prometheus-client>=0.20.0; extra == 'prometheus'
Provides-Extra: storage
Requires-Dist: boto3>=1.28.0; extra == 'storage'
Requires-Dist: google-cloud-storage>=2.10.0; extra == 'storage'
Description-Content-Type: text/markdown

# Sagewai

![PyPI](https://img.shields.io/pypi/v/sagewai)
![License](https://img.shields.io/badge/license-AGPL--3.0-blue)
![Python](https://img.shields.io/pypi/pyversions/sagewai)

**Agent Infrastructure You Own**

The open-source platform for AI agents that run, remember, and report. Build agents in Python. Operate them from a dashboard. Own everything.

## The 5 Pillars

| Pillar | Description |
|--------|-------------|
| **SDK** | Build agents with multi-model support, tools, memory, guardrails, and durable workflows |
| **Registry** | Store, version, discover, and govern AI agents across your organization |
| **Harness** | Proxy, route, and budget-control all LLM access (Claude Code, Cursor, Codex) |
| **Observatory** | Source of truth for all AI expenditure -- costs, tokens, audit trails, metrics |
| **Training** | Fine-tune domain LLMs with Unsloth, serve locally at $0/token |

## Quick Start

```bash
pip install sagewai
```

```python
import asyncio
from sagewai import UniversalAgent

agent = UniversalAgent(name="hello", model="gpt-4o-mini")
print(asyncio.run(agent.chat("What is Sagewai?")))
```

Three lines to create an agent. Works with GPT-4o, Claude, Gemini, Mistral, Ollama, and 100+ models via LiteLLM.

## Install Extras

| Extra | What it adds |
|-------|-------------|
| `sagewai[memory]` | Milvus, NebulaGraph, Docling, tiktoken |
| `sagewai[intelligence]` | Embeddings, entity extraction, language detection |
| `sagewai[postgres]` | asyncpg, SQLAlchemy async, Alembic |
| `sagewai[fastapi]` | FastAPI + SSE support |
| `sagewai[prometheus]` | Prometheus metrics exporter |
| `sagewai[storage]` | S3 (boto3) and GCS archival backends |
| `sagewai[all]` | Everything above |

## Examples

21 progressive examples organized by pillar:

**SDK** (01-08): Hello agent, tools, multi-model, memory, workflows, guardrails, MCP, directives

**Harness** (09-13): Claude Code proxy, Cursor proxy, Codex proxy, budget enforcement, model routing

**Registry** (14-16): Register agents, discover agents, agent governance

**Training** (17-19): Unsloth fine-tune, local LLM routing, domain models

**Enterprise** (20-21): Fleet workers, full stack setup

See [`sagewai/examples/`](sagewai/examples/) for all examples.

## CLI

```bash
sagewai init my-project              # scaffold a new project
sagewai doctor                       # check environment health
sagewai agent run my_agent.yaml      # run an agent from config
sagewai harness start                # start the LLM proxy
```

## Documentation

- [docs.sagewai.ai](https://docs.sagewai.ai) -- full documentation
- [Getting Started](https://docs.sagewai.ai/docs/getting-started) -- quickstart guide
- [LLM Harness Guide](https://docs.sagewai.ai/docs/guides/harness) -- govern AI coding tool costs

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code style, and PR process.

## License

AGPL-3.0 -- see [LICENSE](LICENSE). Commercial licenses available for organizations that need an alternative to AGPL. See [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md) for details.

Built by [Ali Arda Diri](https://sagecurator.com).
