Skip to main content

Wabee AI Software Development Kit

Project description

PyPI - Downloads PyPI - Format PyPI - Implementation PyPI - License PyPI - Status PyPI - Version PyPI - Wheel PyPI - Python Version

Wabee AI

Wabee SDK

wabee-sdk is a Python module for development of modules and extensions for the Wabee agentic AI platform.

Installation

pip install wabee

Command Line Interface (CLI)

The Wabee SDK includes a powerful CLI tool to streamline the development of Wabee agent tools.

Creating a New Tool

Create a new tool using the interactive CLI:

wabee tools create

This command will prompt you for:

  • Tool name
  • Tool type (simple or complete)
  • Tool description
  • Initial version

Tool Types

  1. Simple Tool:

    • Ideal for straightforward, single-function tools
    • Uses the @simple_tool decorator
    • Less boilerplate code
    • Perfect for quick implementations
  2. Complete Tool:

    • Full class implementation
    • More control over tool behavior
    • Better for complex tools with multiple operations
    • Includes error handling infrastructure

Building Tool Containers

Build a tool into a container image:

wabee tools build <tool_directory> [options]

Options:

  • --image: Specify custom image name (default: toolname:latest)

Example:

wabee tools build ./my-tool

Tool Project Structure

When you create a new tool, the following structure is generated:

my_tool/
├── my_tool_tool.py      # Main tool implementation
├── requirements.txt     # Python dependencies
├── server.py           # gRPC server implementation
└── toolspec.yaml       # Tool specification and metadata

RPC Server

Each built tool runs as a gRPC server that exposes a standardized interface for tool execution. The server:

  • Listens on port 50051 by default (configurable via WABEE_GRPC_PORT)
  • Automatically handles input validation using your Pydantic schemas
  • Provides standardized error handling and reporting
  • Supports streaming responses for long-running operations

When you build a tool with wabee tools build, the resulting container image includes:

  • Your tool implementation
  • All dependencies
  • A pre-configured gRPC server
  • Generated protocol buffers for type-safe communication

You can run the built container with:

docker run -p 50051:50051 mytool:latest

toolspec.yaml

The tool specification file contains metadata about your tool:

tool:
  name: MyTool
  description: Your tool description
  version: 0.1.0
  entrypoint: my_tool_tool.py

Requirements

  • Python >=3.11,<3.12
  • Docker (for building containers)
  • Internet connection (for downloading S2I builder)

Development Examples

Simple Tool Example

from pydantic import BaseModel
from wabee.tools.simple_tool import simple_tool

class MyToolInput(BaseModel):
    message: str

@simple_tool(schema=MyToolInput)
async def my_tool(input_data: MyToolInput) -> str:
    return f"Processed: {input_data.message}"

Complete Tool Example

from typing import Optional, Type
from pydantic import BaseModel
from wabee.tools.base_tool import BaseTool
from wabee.tools.tool_error import ToolError

class MyToolInput(BaseModel):
    message: str

class MyTool(BaseTool):
    args_schema: Type[BaseModel] = MyToolInput

    async def execute(self, input_data: MyToolInput) -> tuple[Optional[str], Optional[ToolError]]:
        try:
            result = f"Processed: {input_data.message}"
            return result, None
        except Exception as e:
            return None, ToolError(type="EXECUTION_ERROR", message=str(e))

Contributing

Suggestions are welcome! Please feel free to submit bug reports or feedbacks as a Github issues.

Links

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

wabee-0.3.2.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

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

wabee-0.3.2-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file wabee-0.3.2.tar.gz.

File metadata

  • Download URL: wabee-0.3.2.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.0 CPython/3.10.16 Linux/6.8.0-1021-azure

File hashes

Hashes for wabee-0.3.2.tar.gz
Algorithm Hash digest
SHA256 40ad957ce140d11bf2b259a9881fb307274db12d5a00fc5db0b5bd74d68b34e8
MD5 aa14b2472ac4a9c45a259ff84923d328
BLAKE2b-256 2b0508bad8dfd1a7fce3a83920350c1bee9939f6f8af4fccdace59cce8bd85af

See more details on using hashes here.

File details

Details for the file wabee-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: wabee-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.0 CPython/3.10.16 Linux/6.8.0-1021-azure

File hashes

Hashes for wabee-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8a98fdb7deb87f366e8ffba08d54cfe060f9a9b42a1eae59a89c0faad3c6539d
MD5 d18a013709db32863160eb82d6f11b1e
BLAKE2b-256 b588da1edea6981bda8857227c1118652c33baf04a381e1dcca894b181d3dcda

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