Skip to main content

Weni Agents Toolkit

CI CD PyPI version Python Versions License: MIT

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 messages
  • QuickReplies: Interactive quick reply buttons
  • ListMessage: Interactive list menus
  • CTAMessage: Call-to-action messages
  • Location: Location request messages
  • OrderDetails: Order information messages
  • Attachments: File attachments
  • Header: Message headers
  • Footer: Message footers

Response Types

  • TextResponse: Simple text messages
  • QuickReplyResponse: Messages with quick reply buttons
  • ListMessageResponse: Interactive list menus
  • CTAMessageResponse: Call-to-action messages
  • LocationResponse: Location-based messages
  • OrderDetailsResponse: Order information displays

Development

Prerequisites

  • Python 3.9+
  • Poetry

Setup

  1. Clone the repository:
git clone https://github.com/weni-ai/agents-toolkit.git
cd agents-toolkit
  1. Install dependencies:
poetry install
  1. Run tests:
poetry run pytest

Code Quality

We use several tools to ensure code quality:

  • pytest for testing
  • mypy for type checking
  • ruff for linting

Run all checks:

poetry run pytest
poetry run mypy weni
poetry run ruff check .

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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)

Source distribution for weni-agents-toolkit 2.10.0
File Size Uploaded Provenance
weni_agents_toolkit-2.10.0.tar.gz 35.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for weni-agents-toolkit 2.10.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

2.10.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page