EQTY LabDocs

Before you start

What the guides' examples assume: a running proxy, the agents they name, the packages and keys they use, and the files they read.

View as Markdown

The guides’ examples are whole programs you can run. Each one assumes the setup on this page, beyond the Quick start’s.

A proxy for each provider

Most examples call OpenAI, through the proxy the quick start started, at VIPER_PROXY_URL. The Anthropic examples need a second proxy, aimed at Anthropic’s endpoint on the Agent Gateway, since a proxy fronts one provider’s endpoint (One proxy per provider):

sh
# OpenAI's, as in the quick start
viper proxy --port 8080 --require-agent-header \
  --gateway-endpoint "$GUARDIAN_URL/v1/openai_api"

# Anthropic's, in another terminal
viper proxy --port 8081 --require-agent-header \
  --gateway-endpoint "$GUARDIAN_URL/v1/anthropic_api"

Both proxies load every agent enrolled on the machine when they start, so they share the agents’ keys, and the proxy’s own key. Point the examples at them:

sh
export VIPER_PROXY_URL=http://127.0.0.1:8080       # most examples
export OPENAI_PROXY_URL=http://127.0.0.1:8080      # the two-provider example
export ANTHROPIC_PROXY_URL=http://127.0.0.1:8081   # the two-provider example

The Anthropic-only example reads VIPER_PROXY_URL too, so run it with VIPER_PROXY_URL=http://127.0.0.1:8081.

The agents they name

The examples use three agents: researcher, as in the quick start, planner and report-writer. Enroll the two you don’t have yet, then restart the proxies so they load them:

sh
for agent in planner report-writer; do
  viper agent add "$agent"
  GUARDIAN_API_KEY=ak_... viper agent register "$agent"
done

Sub-agents, such as report-writer’s critic, aren’t enrolled: they sign as their parent.

Packages and keys

Install the clients the examples call, beside the SDK (Package managers):

sh
uv add "openai>=1.55.3" "anthropic>=0.40.0"
uv add "eqty-guardian-agent[langchain,deepagents,mcp]" langchain-openai   # the framework examples
uv add --dev pytest                                                                             # the testing examples

The Deep Agents examples need Python 3.11 or later (Choose an integration).

With pip, install the same packages: the SDK from EQTY Lab’s Cloudsmith repository, the rest from PyPI. Then set your provider keys, which reach the providers unchanged:

sh
export OPENAI_API_KEY=...
export ANTHROPIC_API_KEY=...

The files they read

Some examples read files beside them, by relative paths, which resolve against the folder you run the example from. Create them there, or point the examples at your own.

A skill is a directory holding a SKILL.md, here skills/triage/SKILL.md:

markdown
---
name: triage
description: Sort incoming questions by urgency before answering them.
---

# Triage

Answer urgent questions first. Say which questions you deferred, and why.

Instructions the agent can’t change, here docs/agent-notes.md:

markdown
# Agent notes

Cite the internal documentation for every answer, by page title.

A developer prompt read from a file, here prompts/planner.md:

markdown
Break each request into steps, and say which step needs which tool.

And code the planner’s tools read, fingerprinted as one of its sources, here lib/routing.py:

python
"""Which team handles which kind of request: code the planner's tools read."""

TEAMS = {"billing": "finance", "outage": "on-call", "account": "support"}

The MCP tools example also starts a small MCP server from servers/docs_server.py, which that page shows.

Save an example in that folder, under any name that isn’t a package’s (not mcp.py or langgraph.py, say), and run it from there with python example.py, or uv run python example.py in a uv project. An example named test_*.py is a test module: keep its name, and run it with pytest, or uv run pytest.