Skip to main content

Python SDK for the komputer.ai platform

Project description

komputer-ai Python SDK

Python client for the komputer.ai platform.

Installation

pip install komputer-ai-sdk

Or install directly from the repository:

pip install git+https://github.com/komputer-ai/komputer-ai.git#subdirectory=komputer-sdk/python

Quick Start

from komputer_ai.client import KomputerClient

client = KomputerClient("http://localhost:8080")

# Create an agent
agent = client.create_agent(
    name="my-agent",
    instructions="Summarize the latest Kubernetes release notes",
    model="claude-sonnet-4-6",
)

# Stream events as the agent works
for event in client.watch_agent("my-agent"):
    if event.type == "text":
        print(event.payload.content)
    elif event.type == "task_completed":
        print(f"Done — cost: ${event.payload.cost_usd}")
        break

Usage

Agents

# Create
client.create_agent(name="researcher", instructions="Research AI trends", model="claude-sonnet-4-6")

# List
agents = client.list_agents()

# Get
agent = client.get_agent("researcher")

# Update
client.patch_agent("researcher", model="claude-haiku-4-5-20251001", lifecycle="Sleep")

# Send a follow-up task to an idle agent
client.create_agent(name="researcher", instructions="Now focus on LLM benchmarks")

# Cancel a running task
client.cancel_agent_task("researcher")

# Delete
client.delete_agent("researcher")

Memories

client.create_memory(name="company-context", content="We are a B2B SaaS company.", description="Background info")
client.patch_agent("my-agent", memories=["company-context"])

memories = client.list_memories()
client.patch_memory("company-context", content="Updated context.")
client.delete_memory("company-context")

Skills

client.create_skill(name="healthcheck", description="Check service health", content="curl -s http://api/healthz")
client.patch_agent("my-agent", skills=["healthcheck"])

skills = client.list_skills()
client.delete_skill("healthcheck")

Schedules

client.create_schedule(
    name="daily-report",
    schedule="0 9 * * *",
    instructions="Generate a daily status report",
    timezone="America/New_York",
)

schedules = client.list_schedules()
client.patch_schedule("daily-report", schedule="0 10 * * *")
client.delete_schedule("daily-report")

Secrets

client.create_secret(name="api-keys", data={"GITHUB_TOKEN": "ghp_xxx", "SLACK_TOKEN": "xoxb-xxx"})
client.patch_agent("my-agent", secret_refs=["api-keys"])

secrets = client.list_secrets()
client.update_secret("api-keys", data={"GITHUB_TOKEN": "ghp_new"})
client.delete_secret("api-keys")

Connectors

client.create_connector(name="slack", service="slack", url="https://mcp.slack.com", auth_type="token")
client.patch_agent("my-agent", connectors=["slack"])

connectors = client.list_connectors()
client.delete_connector("slack")

Offices

offices = client.list_offices()
office = client.get_office("my-office")

Streaming Events

for event in client.watch_agent("my-agent"):
    match event.type:
        case "task_started":
            print("Agent started working...")
        case "text":
            print(event.payload.content)
        case "tool_call":
            print(f"Using tool: {event.payload.tool}")
        case "task_completed":
            print(f"Done — cost: ${event.payload.cost_usd}")
            break
        case "error":
            print(f"Error: {event.payload.error}")
            break

Event types: task_started, thinking, tool_use, tool_result, text, task_completed, task_cancelled, error.

Distributed consumers — group=

By default, watch_agent opens a broadcast subscription: every connected client receives every event. If you run multiple instances of your service (e.g. 3 replicas of a Slack bot) and they all call client.watch_agent("my-agent") without further options, each instance will process every event — duplicate work.

To get queue-style delivery (each event handled by exactly one instance across your fleet), pass group=:

for event in client.watch_agent("my-agent", group="my-bot"):
    ...

The API uses Redis-coordinated routing to deliver each event to exactly one client per group, regardless of how many replicas connect or which API replica they hit. Pick any string for the group name (my-bot, audit-pipeline, prod-webhook-fwd).

Use broadcast for: dashboards, debugging, single-instance workers, anywhere "see everything" is the goal. Use group= for: distributed services, webhook forwarders, anywhere you'd otherwise dedupe events yourself.

On write failure, the API retries delivery to other group members on the same replica before giving up — an event is only lost when all members on the routing replica fail simultaneously. Use client.get_agent_events(name, limit=...) to backfill on reconnect if you need strict exactly-once guarantees.

Context Manager

with KomputerClient("http://localhost:8080") as client:
    agents = client.list_agents()

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

komputer_ai_sdk-0.15.9.tar.gz (143.7 kB view details)

Uploaded Source

Built Distribution

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

komputer_ai_sdk-0.15.9-py3-none-any.whl (359.0 kB view details)

Uploaded Python 3

File details

Details for the file komputer_ai_sdk-0.15.9.tar.gz.

File metadata

  • Download URL: komputer_ai_sdk-0.15.9.tar.gz
  • Upload date:
  • Size: 143.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for komputer_ai_sdk-0.15.9.tar.gz
Algorithm Hash digest
SHA256 afe9e40c65fdb7078068298b7c713adeb05ea77c0cafb1333d7fe8e7fc9af6be
MD5 ea6ef9311bdb098e4d19386d4c7e49bb
BLAKE2b-256 350a909a0aac00a711934d52d4d4d6dd6e98eecded7dfe890d5569abb2c86f81

See more details on using hashes here.

Provenance

The following attestation bundles were made for komputer_ai_sdk-0.15.9.tar.gz:

Publisher: build.yaml on komputer-ai/komputer-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file komputer_ai_sdk-0.15.9-py3-none-any.whl.

File metadata

File hashes

Hashes for komputer_ai_sdk-0.15.9-py3-none-any.whl
Algorithm Hash digest
SHA256 71f72342ac7e2e932fb633a903eb99d1b7545d436f736c2501b2a9630e99a3c8
MD5 22acf0b1925cf6a61f89a2125721f904
BLAKE2b-256 979b93cf6413d8bec80893d4bfb9248e8a8672fdaa5ab40f4c04d12d40a63ce0

See more details on using hashes here.

Provenance

The following attestation bundles were made for komputer_ai_sdk-0.15.9-py3-none-any.whl:

Publisher: build.yaml on komputer-ai/komputer-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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