Skip to main content

Official Python client library for AIgents AI platform

Project description

AIgents Python Client

Official Python client library for the AIgents AI platform.

Installation

pip install aigents-sdk

Quick Start

from aigents import AIgentsClient

# Initialize the client with your API key
client = AIgentsClient(
    api_key="aig_your_api_key_here",
    base_url="http://localhost:8000"  # or your AIgents server URL
)

# List your applications
apps = client.applications.list()
print(f"Found {len(apps)} applications")

# Get a specific application
app = client.applications.get("app_id")
print(f"Application: {app.name}")

# List agents in an application
agents = client.applications.agents.list("app_id")
print(f"Found {len(agents)} agents")

# Start a chat session
session = client.chat.create_session("app_id", agent_id="agent_id")
print(f"Created session: {session.id}")

# Send a message
response = client.chat.send_message(
    session_id=session.id,
    content="Hello, how can you help me today?"
)
print(f"Assistant: {response.content}")

Advanced Usage

Tool Calls and MCP Approval

# Send a message that might trigger tool calls
response = client.chat.send_message(
    session_id=session.id,
    content="What's the weather like in San Francisco?",
    tools=[{"type": "weather_api"}]
)

# Handle tool calls
if response.tool_calls:
    for tool_call in response.tool_calls:
        print(f"Tool call: {tool_call.name}")
        print(f"Arguments: {tool_call.arguments}")

# Handle MCP approval requests
if response.requires_mcp_approval:
    print(f"MCP approval required: {response.mcp_approval_request_id}")
    
    # Approve the MCP request
    approved_response = client.chat.approve_mcp_request(
        request_id=response.mcp_approval_request_id,
        approved=True
    )

Working with Datasets

# List datasets
datasets = client.applications.datasets.list("app_id")

# Add data to a dataset
client.applications.datasets.add_data(
    app_id="app_id",
    dataset_id="dataset_id",
    data=[
        {
            "input": "What is machine learning?",
            "output": "Machine learning is a subset of AI...",
            "metadata": {"category": "education"}
        }
    ]
)

Error Handling

from aigents.exceptions import AIgentsError, AuthenticationError, RateLimitError

try:
    response = client.chat.send_message(session_id, "Hello")
except AuthenticationError:
    print("Invalid API key")
except RateLimitError:
    print("Rate limit exceeded")
except AIgentsError as e:
    print(f"API error: {e}")

Configuration

The client can be configured with environment variables:

export AIGENTS_API_KEY="aig_your_api_key_here"
export AIGENTS_BASE_URL="https://api.aigents.co"
# Client will automatically use environment variables
client = AIgentsClient()

API Reference

Client

  • AIgentsClient(api_key, base_url, timeout)

Applications

  • client.applications.list() - List all applications
  • client.applications.get(app_id) - Get application details
  • client.applications.create(name, description) - Create new application
  • client.applications.update(app_id, **kwargs) - Update application
  • client.applications.delete(app_id) - Delete application

Agents

  • client.applications.agents.list(app_id) - List agents
  • client.applications.agents.get(app_id, agent_id) - Get agent details
  • client.applications.agents.create(app_id, **kwargs) - Create agent
  • client.applications.agents.update(app_id, agent_id, **kwargs) - Update agent
  • client.applications.agents.delete(app_id, agent_id) - Delete agent

Chat

  • client.chat.create_session(app_id, **kwargs) - Create chat session
  • client.chat.send_message(session_id, content, **kwargs) - Send message
  • client.chat.get_history(session_id) - Get chat history
  • client.chat.approve_mcp_request(request_id, approved) - Approve MCP request

Tools & MCPs

  • client.applications.tools.list(app_id) - List tools
  • client.applications.mcps.list(app_id) - List MCPs

Datasets

  • client.applications.datasets.list(app_id) - List datasets
  • client.applications.datasets.get(app_id, dataset_id) - Get dataset
  • client.applications.datasets.add_data(app_id, dataset_id, data) - Add data

Contributing

  1. Clone the repository
  2. Install development dependencies: pip install -e .[dev]
  3. Run tests: pytest
  4. Format code: black aigents/
  5. Type check: mypy aigents/

License

MIT License - see LICENSE file for details.

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

aigents_sdk-0.1.0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

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

aigents_sdk-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file aigents_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: aigents_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for aigents_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 920646981978ff0a6f65b3cebf95d91846c8742464da04efe7f2e984fc896a82
MD5 d9cdd9ea1d1f90e3eeef8648464b83b8
BLAKE2b-256 de2ace59b73d9e9a6a40d54bca8ada26ae566c3dc1d966884cd31b412fc45908

See more details on using hashes here.

File details

Details for the file aigents_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aigents_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for aigents_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99d53e662bd8ecc8c4fbbe463389a3c1ca73c5e7fe5f0707be61222064f43c89
MD5 b1a63046f82f87a9d0c174e94d318d62
BLAKE2b-256 c34a951aa9c55b709b6c9dbe3bc544b72c5df1e190b17ac2ce7e34e12b300c98

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