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:
- agent_client: A Python client library providing a simple, OpenAI-like API for interacting with agents
- 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:
- Version incrementing in pyproject.toml
- Running tests
- Package building
- 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:
- Increment the patch version (e.g., 0.2.0 → 0.2.1)
- Run tests to validate the package
- Build the package
- 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:
-
Create a
.pypircfile in your home directory:[pypi] username = your_username password = your_password -
Secure the file:
chmod 600 ~/.pypirc
Alternatively, use API tokens for more secure authentication.
License
Apache Software License
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2eac1705e4167eac625c8a6fe79bfae7a4ae8ca969eb6578aad7e64beb94856
|
|
| MD5 |
7389348de475ac8545c826f4a12a3004
|
|
| BLAKE2b-256 |
5d3a58fbb903c6c19a429b93b076c4c8ac544e6f14efa9b9bdca5a1becda275d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7db77110a9bc7a0cdf2f04b7fa6916752ef8a65109d6c72a1a8e019e878427a2
|
|
| MD5 |
e84423c1f7285c6d7d158e6c653afc17
|
|
| BLAKE2b-256 |
0835993725fccc992a4ff1350d074e4cc125a122ea21c8dd951e855585f75704
|