Skip to main content

Python SDK for the AgentCC LLM Gateway — OpenAI-compatible, type-safe, with guardrails and observability

Project description

agentcc

Python SDK for the AgentCC gateway — OpenAI-compatible, typed, with first-class streaming, tools, structured output, guardrails, and cost tracking.

Install

pip install agentcc

Python 3.9+ required.

Usage

Basic chat completion

import os
from agentcc import AgentCC

client = AgentCC(
    api_key=os.environ["AGENTCC_API_KEY"],
    base_url="https://gateway.futureagi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Summarize the theory of relativity."}],
)
print(response.choices[0].message.content)

The AgentCC client reads AGENTCC_API_KEY and AGENTCC_BASE_URL from the environment when those parameters are not passed explicitly.

Streaming

# stream=True returns an iterator of ChatCompletionChunk objects
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Write a haiku about programming."}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content:
        print(delta.content, end="", flush=True)

# Alternatively, use the stream() context manager for convenience helpers
with client.chat.completions.stream(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Write a haiku about programming."}],
) as s:
    for text in s.text_stream:
        print(text, end="", flush=True)
    print(f"\n[{s.get_final_completion().usage.total_tokens} tokens]")

Tool calling

import json

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather for a location.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string"},
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        },
    }
]

messages = [{"role": "user", "content": "What's the weather in Paris?"}]
response = client.chat.completions.create(model="gpt-4o", messages=messages, tools=tools)

if response.choices[0].message.tool_calls:
    for tc in response.choices[0].message.tool_calls:
        args = json.loads(tc.function.arguments)
        # call your function, then send the result back as a tool message

Async client

import asyncio
from agentcc import AsyncAgentCC

async def main():
    client = AsyncAgentCC(
        api_key=os.environ["AGENTCC_API_KEY"],
        base_url="https://gateway.futureagi.com/v1",
    )
    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    print(response.choices[0].message.content)
    await client.close()

asyncio.run(main())

API surface

Resource Access path
Chat completions client.chat.completions
Legacy completions client.completions
Embeddings client.embeddings
Images client.images
Audio client.audio
Models client.models
Moderations client.moderations
Files client.files
Batches client.batches
Rerank client.rerank
Responses client.responses

Environment variables

Variable Description
AGENTCC_API_KEY API key (sk-agentcc-*)
AGENTCC_BASE_URL Gateway base URL (e.g. https://gateway.futureagi.com/v1)

Documentation

https://docs.futureagi.com

License

Apache 2.0 — see 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

agentcc-1.0.0.tar.gz (135.0 kB view details)

Uploaded Source

Built Distribution

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

agentcc-1.0.0-py3-none-any.whl (91.2 kB view details)

Uploaded Python 3

File details

Details for the file agentcc-1.0.0.tar.gz.

File metadata

  • Download URL: agentcc-1.0.0.tar.gz
  • Upload date:
  • Size: 135.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for agentcc-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6e8737b3e921a681c95d2cdebe5ef992353a38dcc0bece592eb444f3b15aaf76
MD5 407a4d3fed86563b3c2807242d6f9b34
BLAKE2b-256 2b263352950470e178e2842d01b964a5925caf834c14de9727b2370eb24721cb

See more details on using hashes here.

File details

Details for the file agentcc-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: agentcc-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for agentcc-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2eb341ee1ad626e663d6bb875a44145c425ea84d457d0e85dab1c1cd18fea803
MD5 e1fc1cc342cd9dc8254a364c84bbafc7
BLAKE2b-256 b730ed8697b2aa75ffdd8db1cc2a396ceb7f4ddfe0d38a259f3adced1f3a7170

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