Wabee AI Software Development Kit
Project description
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
-
Simple Tool:
- Ideal for straightforward, single-function tools
- Uses the
@simple_tooldecorator - Less boilerplate code
- Perfect for quick implementations
-
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
- Website: https://wabee.ai/
- Documentation: https://documentation.wabee.ai
- GitHub: https://github.com/wabee-ai/wabee-sdk
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40ad957ce140d11bf2b259a9881fb307274db12d5a00fc5db0b5bd74d68b34e8
|
|
| MD5 |
aa14b2472ac4a9c45a259ff84923d328
|
|
| BLAKE2b-256 |
2b0508bad8dfd1a7fce3a83920350c1bee9939f6f8af4fccdace59cce8bd85af
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a98fdb7deb87f366e8ffba08d54cfe060f9a9b42a1eae59a89c0faad3c6539d
|
|
| MD5 |
d18a013709db32863160eb82d6f11b1e
|
|
| BLAKE2b-256 |
b588da1edea6981bda8857227c1118652c33baf04a381e1dcca894b181d3dcda
|