Skip to main content

A production-grade, framework-agnostic Python Agent SDK with Bridge and Adapter pattern runtimes.

Project description

Kneo Agent

A production-grade, framework-agnostic Python Agent SDK. Build LLM-powered agents across multiple providers (Google ADK, OpenAI Agents SDK, LangChain) with one consistent API and four execution styles: Bridge, Native, Adapter, and Workflow.


Requirements

  • Python 3.12+
  • A single mandatory runtime dependency (PyYAML)
  • Provider SDKs and OpenTelemetry are optional extras — install only what you need

Installation

pip install kneo-agent                       # core only
pip install "kneo-agent[openai]"             # + OpenAI Agents SDK
pip install "kneo-agent[langchain]"          # + LangChain
pip install "kneo-agent[google-adk]"         # + Google ADK
pip install "kneo-agent[telemetry]"          # + OpenTelemetry middleware
pip install "kneo-agent[all]"                # everything above

Verify:

python -c "import kneo_agent; print(kneo_agent.__version__)"
# → 1.3.0

Quick Start

The shortest path is build_sync_agent — no asyncio boilerplate at the call site:

from kneo_agent import build_sync_agent

agent = build_sync_agent(
    "openai",
    model="gpt-4o-mini",
    system_prompt="You are a helpful assistant.",
)

print(agent.chat("What is 2 + 2?"))   # blocks, returns str

Heads-up: build_sync_agent spins up a fresh event loop via asyncio.run. SyncAgent raises RuntimeError if invoked from inside an already-running event loop (Jupyter, FastAPI handlers, other async code) rather than silently deadlocking. In those contexts, reach for the async build_agent instead.

If you're already inside an event loop (Jupyter, FastAPI handler, other async code), use the async equivalent:

import asyncio
from kneo_agent import build_agent

async def main():
    agent = build_agent("openai", model="gpt-4o-mini")
    print(await agent.chat("What is 2 + 2?"))

asyncio.run(main())

Both functions accept the same parameters: provider, model, tools, system_prompt, middlewares, plus a runtime= escape hatch for any pre-built AgentRuntime. The explicit AgentBuilder + factory chain remains available for fine-grained control (custom strategies, multi-step tool registration, workflow composition).


Optional Features

Feature Extra What it adds
OpenAI Agents SDK runtime [openai] Native gpt-* runtime via openai-agents
LangChain runtime [langchain] Bridge over any BaseChatModel
Google ADK runtime [google-adk] Adapter wrapping ADK runners
OpenTelemetry tracing [telemetry] First-party OpenTelemetryMiddleware emitting GenAI semantic-convention spans

Built-in capabilities (no extra needed):

  • MCP tool servers — import remote tools over stdio, http, or sse via MCPServerConfig and ToolRegistry.register_mcp_server(...). HTTP / SSE transports support TLS / mTLS / custom CA bundles via the verify= / ca_bundle= / client_cert= / client_key= parameters.
  • Skills — package prompt fragments, tool bundles, and defaults into reusable Skill objects (Python or SKILL.md files).
  • Workflows — sequential, concurrent, handoff, group-chat, and graph orchestrations. Every workflow satisfies AgentRuntime, so it can be used as a normal Agent or nested inside another workflow. RetryStep wraps any component with retry-on-failure semantics.
  • Human-in-the-loop — first-class workflow step with resolver callback or pause/resume semantics.
  • Middleware — composable hooks around runs, streams, model calls, and tool dispatch. The kneo_agent.middleware subpackage ships a production bundle (RetryMiddleware, RateLimitMiddleware, TokenBudgetMiddleware, RedactionMiddleware); the OpenTelemetry middleware is in kneo_agent.observability under the [telemetry] extra.
  • Secret plumbingSecretProvider Protocol with EnvSecretProvider, FileSecretProvider, and MappingSecretProvider so credentials reach tool handlers and MCP transports without leaking into prompts, tool args, or trace spans.
  • Agent-as-tool — expose any Agent as a tool that another agent can call (agent.as_tool(...) or ToolRegistry.add_agent(...)).

Guide Map

The numbered task guides:

Guide Use it for
docs/user/agent_skills_guide.md Loading skills from Python or SKILL.md, discovery, bundled resources, activation payloads
docs/user/mcp_guide.md Importing remote MCP tools over stdio, http, or sse; corporate TLS / mTLS / custom CA
docs/user/agent_middleware_guide.md The four middleware hooks plus the v1.2.0 production bundle (Retry / RateLimit / TokenBudget / Redaction)
docs/user/human_in_the_loop_guide.md Pause / resume / approval steps inside workflows

The cross-cutting docs added in v1.2.0:

Doc Use it for
docs/user/api_stability.md What counts as public surface; the deprecation policy
docs/user/upgrading_to_1.2.md Practical "should I upgrade?" walkthrough from 1.1.x
docs/user/self_hosted_observability.md Wiring OpenTelemetry to OTLP collector / Jaeger / Tempo / SigNoz
docs/user/offline_install.md Air-gapped installs and the no-phone-home audit

Plus: docs/pub/kneo_agent_api_reference.html / .pdf — the full public-API reference, and the architecture / SRS write-ups under docs/dev/ for design-level context.


Cookbook recipes

Runnable patterns under examples/cookbook/:

Recipe What it shows
local_ollama.py Pointing the OpenAI runtime at a local Ollama / vLLM / llama.cpp / LocalAI via base_url=
workflow_branching_and_retry.py Graph workflow combining WorkflowBuilder.add_edge(condition=...) routing with RetryStep resilience
mcp_server_catalog.py Loading a YAML/JSON list of MCPServerConfig entries at app startup
sql_query_tool.py Read-only parameter-bound SQL tool over SQLite (psycopg2 / pymysql / pyodbc swap noted)
rest_api_tool.py Per-host REST tool with auth resolved from a SecretProvider
object_store_tool.py List / get / put against MinIO / on-prem S3 via boto3's endpoint_url=
search_index_tool.py Elasticsearch / OpenSearch query tool with a query-type allow-list

Package Contents

kneo_agent/
├── __init__.py             top-level public API exports
├── py.typed                PEP 561 typed marker
├── simple.py               build_sync_agent / build_agent / SyncAgent
├── core/                   Agent, AgentBuilder, RunConfig, types, middleware, skills
├── runtime/                Bridge / Native / Adapter runtime families
├── providers/              OpenAI / LangChain / Google ADK translations
├── workflows/              Sequential / Concurrent / Handoff / GroupChat / Graph + RetryStep
├── patterns/               BridgeAgentFactory, NativeRuntimeFactory, AdapterAgentFactory
├── mcp/                    MCP stdio / HTTP / SSE client (with TLS / mTLS support)
├── observability/          OpenTelemetryMiddleware (requires [telemetry])
├── middleware/             Retry / RateLimit / TokenBudget / Redaction bundle
└── utils/                  ToolRegistry, SecretProvider + impls, message helpers, logging

For full documentation, examples, the architecture write-up, and the SRS, see the project repository on GitHub.

Community

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

kneo_agent-1.3.0.tar.gz (84.3 kB view details)

Uploaded Source

Built Distribution

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

kneo_agent-1.3.0-py3-none-any.whl (103.3 kB view details)

Uploaded Python 3

File details

Details for the file kneo_agent-1.3.0.tar.gz.

File metadata

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

File hashes

Hashes for kneo_agent-1.3.0.tar.gz
Algorithm Hash digest
SHA256 18ebac286da64a519cb3cbb1d08a98d50455ddef0ec5bdbd56907f52a6196b8c
MD5 83a2d8d3a93e4417964445741662aa20
BLAKE2b-256 2dd0b2b5ab1fba714bf8cbdb388f2441c8d9849d70e08e5a17e845ffb7db30a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for kneo_agent-1.3.0.tar.gz:

Publisher: release.yml on kneo-agent/kneo-agent

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

File details

Details for the file kneo_agent-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: kneo_agent-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 103.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kneo_agent-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a688fbb815897119fe18f1250e5d66f329cd154ac35f13e0e803d349e32d58b7
MD5 521475ee613742d732d72e98235680c6
BLAKE2b-256 5f228e51845d722f352f160d74eb0711f493bda6911b9914f879f4d27769d254

See more details on using hashes here.

Provenance

The following attestation bundles were made for kneo_agent-1.3.0-py3-none-any.whl:

Publisher: release.yml on kneo-agent/kneo-agent

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