This release is a pre-release and may not be stable for production use.
KAgent OpenAI Agents SDK Integration
OpenAI Agents SDK integration for KAgent with A2A (Agent-to-Agent) protocol support, session management, and optional skills integration.
Quick Start
from kagent.openai import KAgentApp
from agents.agent import Agent
# Create your OpenAI agent
agent = Agent(
name="Assistant",
instructions="You are a helpful assistant.",
tools=[my_tool], # Optional
)
# Create KAgent app
app = KAgentApp(
agent=agent,
agent_card={
"name": "my-openai-agent",
"description": "My OpenAI agent",
"version": "0.1.0",
"capabilities": {"streaming": True},
"defaultInputModes": ["text"],
"defaultOutputModes": ["text"],
},
kagent_url="http://localhost:8083",
app_name="my-agent",
)
# Run
fastapi_app = app.build()
# uvicorn run_me:fastapi_app
Agent with Skills
Skills provide domain expertise through filesystem-based instruction files and helper tools (read/write/edit files, bash execution). We provide a function to load all skill-related tools. Otherwise, you can select the ones you need by importing from kagent.openai.tools.
from agents.agent import Agent
from kagent.openai import get_skill_tools
tools = [my_custom_tool]
tools.extend(get_skill_tools("./skills"))
agent = Agent(
name="SkillfulAgent",
instructions="Use skills and tools when appropriate.",
tools=tools,
)
See skills README for skill format and structure.
Session Management
Sessions persist conversation history in KAgent backend:
from agents.agent import Agent
from agents.run import Runner
from kagent.openai._session_service import KAgentSession
import httpx
client = httpx.AsyncClient(base_url="http://localhost:8083")
session = KAgentSession(
session_id="conversation_123",
client=client,
app_name="my-agent",
)
agent = Agent(name="Assistant", instructions="Be helpful")
result = await Runner.run(agent, "Hello!", session=session)
Local Development
Test without KAgent backend using in-memory mode:
app = KAgentApp(agent=agent, agent_card=agent_card, kagent_url="http://localhost:8083", app_name="test-agent")
fastapi_app = app.build_local() # In-memory, no persistence
Deployment
Standard Docker deployment:
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY agent.py .
CMD ["uvicorn", "agent:fastapi_app", "--host", "0.0.0.0", "--port", "8000"]
Load /config/config.json with KAgentConfig.from_file() to connect to kagent.
Architecture
| Component | Purpose |
|---|---|
| KAgentApp | FastAPI application builder with A2A support |
| KAgentSession | Session persistence via KAgent REST API |
| OpenAIAgentExecutor | Executes agents with event streaming |
Environment Variables
Examples
See samples/openai/ for complete examples:
basic_agent/- Simple agent with custom tools- More examples coming soon
See Also
License
See repository LICENSE file.
Runtime configuration file
Managed runtimes receive /config/config.json from the controller. For a standalone
process, create that file and load it with KAgentConfig.from_file():
{"runtime":{"control_plane_url":"http://localhost:8083","gateway_url":"http://localhost:8083","name":"my-agent","namespace":"default","log_level":"info"}}
Provider credentials and standard OTEL_* overrides remain environment inputs.
Metadata
Release files for kagent-openai 1.0.0a16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| kagent_openai-1.0.0a16.tar.gz | 15.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kagent_openai-1.0.0a16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.8 kB
Release files / kagent_openai-1.0.0a16.tar.gz
| Download URL | kagent_openai-1.0.0a16.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb4fe5dac44595b8be43223aa33d006536c2cc11fafb4f75d2d2dde9f61c225d
|
|
BLAKE2b-256 checksum How to use checksums |
d60c238458ccf2566ae06a2064ffc69bed7507778618d2c2636b7902798a5426
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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 / kagent_openai-1.0.0a16-py3-none-any.whl
| Download URL | kagent_openai-1.0.0a16-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9526174dbadf2e9a6f38d010a1f87cac5455efae7be9e87159991b9b18a7d8fc
|
|
BLAKE2b-256 checksum How to use checksums |
a07f5eba88db6f782d4957ec43253ec54ea8e0ff68fac42867e7372e5230f56a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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}
|
Security for kagent-openai 1.0.0a16
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.