GatewaySDK
AI Agent Training and Evaluation Platform
GatewaySDK is a comprehensive toolkit for training and evaluating AI agents using reinforcement learning, automatic prompt optimization, and supervised fine-tuning.
Core Features
- Turn your agent into an optimizable beast with minimal code changes
- Build with any agent framework (LangChain, OpenAI Agent SDK, AutoGen, CrewAI, and more)
- Selectively optimize one or more agents in a multi-agent system
- Embraces algorithms like Reinforcement Learning, Automatic Prompt Optimization, Supervised Fine-tuning and more
Installation
pip install gatewaysdk
For optional dependencies:
# For LLMProxy feature (note: has strict dependency pins for boto3, grpcio, uvicorn)
pip install 'gatewaysdk[proxy]'
# For Trainer (includes the proxy runtime it composes)
pip install 'gatewaysdk[trainer]'
# For GPU statistics in runner heartbeat snapshots
pip install 'gatewaysdk[gpu-monitoring]'
# For APO (Automatic Prompt Optimization)
pip install 'gatewaysdk[apo]'
# For VERL integration
pip install 'gatewaysdk[verl]'
# For Weave integration
pip install 'gatewaysdk[weave]'
# For MongoDB store
pip install 'gatewaysdk[mongo]'
Quick Start
from gatewaysdk import GatewayIngestionClient
# Reads GATEWAY_HOST, GATEWAY_PUBLIC_KEY, and GATEWAY_SECRET_KEY.
client = GatewayIngestionClient.from_env()
# Your agent code here...
Gateway Ingestion Helpers
Use these helpers when you want to send external agent traces/scores directly to a Gateway instance.
1) Gateway ingestion client
from gatewaysdk import GatewayIngestionClient, GatewayIngestionConfig
client = GatewayIngestionClient(
GatewayIngestionConfig(
host="http://localhost:3000",
public_key="pk-lf-...",
secret_key="sk-lf-...",
)
)
# Send trace event
client.ingest_trace_event(
trace_id="trace-001",
name="Agent Trace",
input_data={"prompt": "hello"},
output_data={"answer": "world"},
session_id="session-001",
environment="default",
)
# Send scores efficiently in batches
client.send_scores(
[
{"name": "task_success", "value": 0.95, "dataType": "NUMERIC", "traceId": "trace-001"},
{"name": "safety", "value": 1, "dataType": "BOOLEAN", "traceId": "trace-001"},
],
mode="ingestion-batch",
)
2) Simple API wrapper sample (dependency-free)
For a minimal stdlib-only helper and examples, see:
samples/gateway-agent-trace-wrapper/.
Security Wrapper
Use the security wrapper when Gateway should decide which native tools an agent can see and execute. Your framework keeps owning the tools; Gateway resolves policy, hides denied tools in filter/enforce modes, authorizes before execution, and stamps OpenTelemetry security attributes when tracing is active.
from gatewaysdk import GatewaySecurity
gw = GatewaySecurity.from_env(
agent={
"id": "support-triage",
"name": "Support Triage",
"version": "1.4.2",
}
)
def search_tickets(query: str) -> list[dict]:
return zendesk.search(query)
def delete_ticket(ticket_id: str) -> dict:
return zendesk.delete(ticket_id)
tools = gw.secure_tools(
toolset_id="zendesk",
provider="zendesk",
tools=[search_tickets, delete_ticket],
context={
"user_id": current_user.id,
"team_id": "support",
"environment": "production",
"trace_id": trace_id,
"session_id": session_id,
},
)
CLI Usage
# Start the GatewaySDK server
msk store serve
# Run with vLLM
msk vllm start
Documentation
For full documentation, visit https://docs.gateway.dev/gatewaysdk/
License
MIT License - see LICENSE for details.
Metadata
Release files for gatewaysdk 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gatewaysdk-0.3.3.tar.gz | 13.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gatewaysdk-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.8 MB
Release files / gatewaysdk-0.3.3.tar.gz
| Download URL | gatewaysdk-0.3.3.tar.gz |
|---|---|
| Size | 13.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
263432bf97a2d395fe0fcc32ac0aaf071ca9407e042095d78e4cc53d6dd4a54a
|
|
BLAKE2b-256 checksum How to use checksums |
38b7632bf9040759529259357c7a7137c257275202b1c0aae6f5475be65b66ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / gatewaysdk-0.3.3-py3-none-any.whl
| Download URL | gatewaysdk-0.3.3-py3-none-any.whl |
|---|---|
| Size | 13.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72ef1c54b938c9b28d7a1220b5a1c4e28db554c6aafd928a7c0b9af34fcd5338
|
|
BLAKE2b-256 checksum How to use checksums |
496913916f16b84cc75ee337b231f13bd670020b80adac366afebf308fcff5ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|