EQTY LabDocs

Requirements

The Python versions, Viper version, optional extras and model clients the Guardian Agent SDK supports.

View as Markdown

Python

Python 3.10 or later, on any operating system Viper runs on: Linux or macOS, or a container (see Supported platforms). The SDK is pure Python; its dependencies (Pydantic, jsonschema, httpx and anyio) install from prebuilt wheels on common platforms.

Deep Agents needs Python 3.11 or later, so the deepagents extra installs nothing on 3.10, and calling create_deep_agent there raises ModuleNotFoundError, saying it needs Python 3.11 or later and the extra.

Viper

The SDK talks to a local Viper proxy, which holds each agent’s key, signs its requests and forwards them to your Guardian Platform deployment’s Agent Gateway. It needs Viper 0.3.0 or later: Guardian checks the proxy’s agent API, definition schema and features on first use, and raises ga.ProxyIncompatible, naming what’s missing, if the proxy is older. No definition is sent to an incompatible proxy.

To install Viper and point it at your gateway, see Install Viper in the Guardian Platform docs.

Optional extras

The core SDK works with OpenAI’s and Anthropic’s Python clients and anything that takes an httpx client. The extras add framework support:

  • langchain (eqty-guardian-agent[langchain]): LangChain chat models and tools in a definition and in bind(), LangChain’s create_agent (guardian_agent.langchain), and hand-built LangGraph graphs (guardian_agent.langgraph).
  • deepagents (eqty-guardian-agent[deepagents]): Deep Agents’ create_deep_agent (guardian_agent.deepagents). Python 3.11 or later.
  • mcp (eqty-guardian-agent[mcp]): tools from MCP servers, loaded with langchain-mcp-adapters, each server recorded in the definition.

Your model provider’s LangChain package (langchain-openai, langchain-anthropic) isn’t included: install the one you use.

Model clients

agent.bind() routes these through the proxy:

  • OpenAI’s OpenAI and AsyncOpenAI, from openai 1.55.3 or later.
  • Anthropic’s Anthropic and AsyncAnthropic, from anthropic 0.40.0 or later.
  • LangChain’s ChatOpenAI and ChatAnthropic, with the langchain extra. Another kind of LangChain chat model raises TypeError.

Those are the oldest releases that work with httpx 0.28, the newest httpx release and the one a fresh install gets: older releases fail as soon as you create the client. Newer releases work too, whether they build on httpx (openai before 3, anthropic before 1.0) or on httpx2, as current ones do. The SDK is tested at those oldest releases, at the newest built on httpx, and at the newest built on httpx2.

A proxy fronts one provider’s gateway endpoint, so an agent that calls both OpenAI and Anthropic runs through two proxies (Quick start, step 2). agent.httpx_client() and agent.httpx_async_client() give any other client that takes an httpx client the same routing. OpenAI’s Realtime (WebSocket) API can’t go through the proxy, so a bound client’s Realtime connections fail rather than go unsigned.