Weni Agents Toolkit
A Python library for creating and managing agent skills for the Weni platform. Build powerful conversational agents with type-safe components and a robust skill system.
Installation
pip install weni-agents-toolkit
Or with Poetry:
poetry add weni-agents-toolkit
Quick Start
Creating a Skill
import requests
from weni import Skill
from weni.context import Context
from weni.components import Text, QuickReplies
from weni.data import register_result
class GetAddress(Skill):
def execute(self, context: Context):
# This is how we would retrieve credentials or sensitive information from context
token = context.credentials.get("X-App-Token")
# This is how we would retrieve parameters for this agent tool
cep = context.parameters.get("cep")
# This is how we would retrieve global constants for this project
api_url = context.globals.get("cep_api_url")
# This block is the business logic for the sake of this example on retrieving an address based on the received CEP
base_url = f"{api_url}/{cep}"
response = requests.get(base_url, headers={"Authorization": f"Bearer {token}"})
result = response.json()
# This block is where data is registered for further analysis in the future
register_result("address", result.get("street"))
# This example I'm respoonding allowing quick replies message or a location
return TextResponse(data=result)
Registering Events
Register analytics events to the Weni Datalake using self.register_event() inside your tool:
from weni import Tool
from weni.context import Context
from weni.events.event import Event
from weni.responses import TextResponse
class MyTool(Tool):
def execute(self, context: Context):
result = do_work()
self.register_event(Event(
event_name="order_placed",
key="order_123",
value_type="string",
value="completed",
metadata={"customer": "John Doe"},
))
return TextResponse(data=result)
Parameters:
event_name: Event name.key: Unique key for the event.value_type: Value type (string,int, etc).value: Event value.metadata: (Optional) Additional event metadata.date: (Optional) ISO 8601 date string (defaults to current time).
Events are collected automatically per tool execution with full isolation between Lambda warm starts.
Core Concepts
Context System
The context system provides secure access to:
context = Context(
credentials={"api_key": "secret123"}, # Sensitive data
parameters={"user_id": "123"}, # Skill parameters
globals={"env": "production"} # Global configuration
)
Available Components
Text: Basic text messagesQuickReplies: Interactive quick reply buttonsListMessage: Interactive list menusCTAMessage: Call-to-action messagesLocation: Location request messagesOrderDetails: Order information messagesAttachments: File attachmentsHeader: Message headersFooter: Message footers
Response Types
TextResponse: Simple text messagesQuickReplyResponse: Messages with quick reply buttonsListMessageResponse: Interactive list menusCTAMessageResponse: Call-to-action messagesLocationResponse: Location-based messagesOrderDetailsResponse: Order information displays
Development
Prerequisites
- Python 3.9+
- Poetry
Setup
- Clone the repository:
git clone https://github.com/weni-ai/agents-toolkit.git
cd agents-toolkit
- Install dependencies:
poetry install
- Run tests:
poetry run pytest
Code Quality
We use several tools to ensure code quality:
pytestfor testingmypyfor type checkingrufffor linting
Run all checks:
poetry run pytest
poetry run mypy weni
poetry run ruff check .
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for weni-agents-toolkit 2.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| weni_agents_toolkit-2.10.0.tar.gz | 35.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| weni_agents_toolkit-2.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.7 kB
Release files / weni_agents_toolkit-2.10.0.tar.gz
| Download URL | weni_agents_toolkit-2.10.0.tar.gz |
|---|---|
| Size | 35.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15d0bb7ed730d32fe84e95b33b29936d74a75eddce9e6460b184da83625a1ab7
|
|
BLAKE2b-256 checksum How to use checksums |
9a0973c6b0529e5f2d05a4e85a46f9c628efe0b1c9ac63d3c92e9180264ee0f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.13.16 Linux/6.17.0-1022-azure
|
Release files / weni_agents_toolkit-2.10.0-py3-none-any.whl
| Download URL | weni_agents_toolkit-2.10.0-py3-none-any.whl |
|---|---|
| Size | 45.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
53288b1a31dfd64a3a1bdbddd60c78fb6ffdc92082e5a852a838910429f7ff96
|
|
BLAKE2b-256 checksum How to use checksums |
b80ed1a5a0a15468c9f24b620994e0e92e9d346c38e61a84b37d2b04a311495c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.5 CPython/3.13.16 Linux/6.17.0-1022-azure
|
Security for weni-agents-toolkit 2.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.