Skip to main content

A comprehensive client library and CLI for interacting with the Agents API

Project description

Agents Client

A comprehensive package for interacting with the Agents API, providing both a Python client library and a command-line interface (CLI).

Components

This package consists of two main components:

  1. agent_client: A Python client library providing a simple, OpenAI-like API for interacting with agents
  2. agent_client_cli: A command-line interface (CLI) for interacting with the Agents API

Installation

Basic Installation

pip install agents-client

Installation with CLI Support

pip install "agents-client[cli]"

Development Installation

pip install "agents-client[dev]"

Client Library Usage

Quick Start

from agent_client import Agent

# Initialize the agent
agent = Agent(
    agent_id="your-agent-id",
    api_key="your-api-key"
)

# Define a callback function for streaming responses
def handle_response(response):
    print(f"Received: {response.get('type')} - {response.get('message')}")

# Start streaming responses in a background thread
agent.start_streaming(handle_response)

# Send a message to the agent
response = agent.message("Hello, Agent!")
print(f"Message sent! Response ID: {response.get('row_id')}")

# Responses will be streamed to your callback function

# When done, stop streaming
agent.stop_streaming()

Client Features

Agent Class

The Agent class provides a simple interface similar to OpenAI's API:

# Initialize with required parameters
agent = Agent(
    agent_id="your-agent-id",
    api_key="your-api-key",
    base_url="http://localhost:6665",  # Optional
    stream_callback=handle_response    # Optional, can be provided later
)

Sending Messages

# Send a simple text message
agent.message("Hello, agent!")

# Send a message with additional parameters
agent.message("Process this data", 
    priority="high", 
    format="json"
)

Streaming Responses

# Define a callback to handle streaming responses
def handle_response(response):
    print(f"Received: {response}")

# Start streaming with the callback
agent.start_streaming(handle_response)

# Or provide the callback during initialization
agent = Agent(
    agent_id="your-agent-id",
    api_key="your-api-key",
    stream_callback=handle_response
)
agent.start_streaming()

# When done, stop streaming
agent.stop_streaming()

File Upload

# Upload a file to the agent
with open("document.pdf", "rb") as file:
    agent.upload_file("/destination/path.pdf", file)

CLI Usage

After installing with CLI support, you can use the agents-cli command:

Setup and Configuration

# Initial setup
agents-cli setup

# View or update configuration
agents-cli config

Managing Agents and API Keys

# List all your agents
agents-cli agents

# List your API keys
agents-cli api-keys

# Create a new API key
agents-cli create-key --name "My New Key"

# Show usage statistics
agents-cli usage

# Get detailed information about a specific agent
agents-cli agent-info <agent_id>

Interacting with Agents

# Send a message to an agent
agents-cli send message '{"text":"Hello"}' --api-key mykey --agent-id myagent

# Upload a file to an agent
agents-cli upload /data/file.txt ./local.txt --api-key mykey --agent-id myagent

# Connect to the WebSocket stream for an agent
agents-cli stream --api-key mykey --agent-id myagent

Examples

See the examples/ directory for complete usage examples for both the client library and CLI.

Legacy Functions

For backward compatibility, the package also provides standalone functions:

from agent_client import send_operation, upload_file

# Send an operation
send_operation("message", {"text": "Hello"}, "api-key", "agent-id")

# Upload a file
with open("file.txt", "rb") as f:
    upload_file("api-key", "agent-id", "/path/to/store.txt", f)

Development and Release

The project includes a release script to automate versioning, building, and publishing to PyPI.

Release Script

The release.py script automates:

  1. Version incrementing in pyproject.toml
  2. Running tests
  3. Package building
  4. PyPI uploading

Basic Usage

# Make the script executable if needed
chmod +x release.py

# Run with default options (patch version increment)
./release.py

This will:

  1. Increment the patch version (e.g., 0.2.0 → 0.2.1)
  2. Run tests to validate the package
  3. Build the package
  4. Upload to PyPI

Command Line Options

# Show help message
./release.py --help

# Release a minor version (e.g., 0.2.0 → 0.3.0)
./release.py --level minor

# Release a major version (e.g., 0.2.0 → 1.0.0)
./release.py --level major

# Build without uploading to PyPI
./release.py --build-only

# Skip running tests (use with caution)
./release.py --skip-tests

PyPI Authentication

When uploading to PyPI, you'll be prompted for your PyPI credentials. To avoid this:

  1. Create a .pypirc file in your home directory:

    [pypi]
    username = your_username
    password = your_password
    
  2. Secure the file: chmod 600 ~/.pypirc

Alternatively, use API tokens for more secure authentication.

License

Apache Software License

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

agents_client-0.2.6.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

agents_client-0.2.6-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file agents_client-0.2.6.tar.gz.

File metadata

  • Download URL: agents_client-0.2.6.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for agents_client-0.2.6.tar.gz
Algorithm Hash digest
SHA256 b2eac1705e4167eac625c8a6fe79bfae7a4ae8ca969eb6578aad7e64beb94856
MD5 7389348de475ac8545c826f4a12a3004
BLAKE2b-256 5d3a58fbb903c6c19a429b93b076c4c8ac544e6f14efa9b9bdca5a1becda275d

See more details on using hashes here.

File details

Details for the file agents_client-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: agents_client-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for agents_client-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7db77110a9bc7a0cdf2f04b7fa6916752ef8a65109d6c72a1a8e019e878427a2
MD5 e84423c1f7285c6d7d158e6c653afc17
BLAKE2b-256 0835993725fccc992a4ff1350d074e4cc125a122ea21c8dd951e855585f75704

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