Skip to main content

Installation

Quick Start

One install pulls in everything:

pip install waxell

That's it. waxell is the canonical meta-package — it brings the runtime engine, the SDK decorators (@agent, @workflow, @tool), and the observability SDK in one shot.

import waxell

@waxell.agent(name="researcher")
class Researcher:
@waxell.workflow
async def run(self, ctx, topic: str) -> str:
return await ctx.llm("Tell me about " + topic)

Power-user installs

If you want one specific piece, the underlying packages stay available forever as aliases:

WantInstall
Everything (default)pip install waxell
Everything + all framework adapters (langgraph, claude-sdk, autogen, crewai, pydantic-ai)pip install 'waxell[all]'
Runtime engine + SDK only (no observability)pip install waxell-runtime
Observability SDK only (instrument an existing agent framework)pip install waxell-observe

The waxell-runtime and waxell-observe packages are not deprecated — they're alternate entry points for size-constrained or single-concern installs. New code should prefer pip install waxell.

Development Installation

For local development, install packages in editable mode:

# Clone the repository
git clone https://gitlab.com/waxell/agentforge.git
cd agentforge

# Install the meta-package + dependencies in editable mode
pip install -e meta/waxell
pip install -e runtime/waxell-runtime
pip install -e observe/waxell-observe

Requirements

  • Python 3.10+
  • pip 21.0+

Verify Installation

import waxell
print(waxell.__version__) # 0.1.0
print(waxell.__runtime_version__) # underlying runtime version
print(waxell.__observe_version__) # underlying observe version

# Both import styles work:
import waxell
from waxell import agent, workflow

# The historical import path still works too (kept forever as an alias):
from waxell_runtime import agent, workflow

@agent(name="test-agent")
class TestAgent:
@workflow
def hello(self, ctx):
return "Hello, Waxell!"

print("Waxell installed successfully!")

Next Steps