Agno Provider for Pragmatiks
Deploys Agno AI agents and teams to Kubernetes with reactive dependency management. Define models, tools, knowledge bases, and memory as declarative resources -- the platform handles wiring, deployment, and change propagation automatically.
Architecture
The Agno provider follows a spec pattern: most resources are stateless configuration wrappers that produce serializable specifications. Only the runner resource creates actual infrastructure.
models/openai ──┐
models/anthropic┤
├─→ agent ──┐
tools/mcp ──────┤ ├─→ runner ──→ Kubernetes Deployment + Service
tools/websearch─┤ │
knowledge ──────┤ team ─┘
vectordb/qdrant │
knowledge/content │
knowledge/embedder │
memory/manager ─┤ │
db/postgres ────┤ │
prompt ─────────┘ │
│
config (kubernetes/config) ─┘
namespace (kubernetes) ─────┘
How it works:
- Configuration resources (models, tools, knowledge, etc.) resolve their dependencies and produce a serializable
Spec - The
agentorteamresource aggregates all specs from its dependencies into a singleAgentSpecorTeamSpec - The
runnerresource deploys one or more agents and teams to Kubernetes by passing the combined specs as a JSON environment variable - The container image reconstructs every agent/team from the spec payload at startup using
from_spec()factory methods and registers them with a single AgentOS instance - When any dependency changes (e.g., a model API key rotates), Pragma propagates the change through the dependency graph and redeploys automatically
Prerequisites
- A
kubernetes/configresource providing cluster access (in-cluster, a GKE cluster, or an external kubeconfig) - A Kubernetes namespace managed by the
kubernetesprovider - API keys for your chosen model provider (OpenAI, Anthropic)
- An Agno runner container image (default:
ghcr.io/pragmatiks/agno-runner:v2) - For knowledge/RAG: a Qdrant vector database instance
- For memory/sessions: a PostgreSQL database instance
Installation
pragma providers install agno
Resources
| Resource | Type Slug | Description |
|---|---|---|
| Agent | agent |
AI agent definition with model, tools, knowledge, and memory |
| Team | team |
Coordinated group of agents with shared resources |
| Runner | runner |
Deploys one or more agents/teams to Kubernetes as a Deployment + Service |
| Prompt | prompt |
Reusable instruction template with variable interpolation |
| OpenAI Model | models/openai |
OpenAI model configuration (GPT-4o, etc.) |
| Anthropic Model | models/anthropic |
Anthropic model configuration (Claude, etc.) |
| MCP Tools | tools/mcp |
Model Context Protocol server integration (stdio, SSE, streamable-http) |
| Web Search Tools | tools/websearch |
Web and news search toolkit (DuckDuckGo, Google, Bing, etc.) |
| Knowledge | knowledge |
Semantic search configuration backed by a vector database |
| Content | knowledge/content |
Content source (URL or text) for ingestion into a knowledge base |
| OpenAI Embedder | knowledge/embedder/openai |
OpenAI embedding model configuration |
| Qdrant VectorDB | vectordb/qdrant |
Qdrant vector database adapter for Agno knowledge |
| Memory Manager | memory/manager |
Agent memory management with PostgreSQL storage |
| PostgreSQL DB | db/postgres |
PostgreSQL database connection for sessions, memory, and storage |
Example: Full Agent Deployment
A realistic example showing a model, tools, knowledge base, and agent deployed to Kubernetes.
# 1. Model
provider: agno
resource: models/anthropic
name: claude
config:
id: claude-sonnet-4-20250514
api_key:
ref: secrets/anthropic-key
field: value
---
# 2. MCP tool server
provider: agno
resource: tools/mcp
name: search-tool
config:
url: http://mcp-search.tools.svc.cluster.local/sse
transport: sse
---
# 3. Web search tool
provider: agno
resource: tools/websearch
name: web-search
config:
backend: duckduckgo
enable_news: true
---
# 4. Embedder for knowledge
provider: agno
resource: knowledge/embedder/openai
name: embedder
config:
id: text-embedding-3-small
api_key:
ref: secrets/openai-key
field: value
---
# 5. Vector database adapter
provider: agno
resource: vectordb/qdrant
name: doc-vectors
config:
url:
ref: qdrant/database/main
field: url
collection:
ref: qdrant/collection/docs
field: name
api_key:
ref: qdrant/database/main
field: api_key
search_type: hybrid
embedder:
ref: agno/knowledge/embedder/openai/embedder
---
# 6. Knowledge base
provider: agno
resource: knowledge
name: docs-kb
config:
vector_db:
ref: agno/vectordb/qdrant/doc-vectors
max_results: 5
---
# 7. Content ingestion
provider: agno
resource: knowledge/content
name: product-docs
config:
knowledge:
ref: agno/knowledge/docs-kb
url: https://docs.example.com/product
description: Product documentation
---
# 8. Database for sessions and memory
provider: agno
resource: db/postgres
name: agent-db
config:
connection_url:
ref: cloudsql/instance/main
field: connection_url
username:
ref: secrets/db-creds
field: username
password:
ref: secrets/db-creds
field: password
---
# 9. Memory manager
provider: agno
resource: memory/manager
name: agent-memory
config:
db:
ref: agno/db/postgres/agent-db
add_memories: true
update_memories: true
---
# 10. Prompt template
provider: agno
resource: prompt
name: system-prompt
config:
template: |
You are {{role}}, a helpful assistant for {{company}}.
Always be concise and accurate.
variables:
role: Senior Support Engineer
company: Acme Corp
---
# 11. Agent definition
provider: agno
resource: agent
name: support-agent
config:
model:
ref: agno/models/anthropic/claude
tools:
- ref: agno/tools/mcp/search-tool
- ref: agno/tools/websearch/web-search
knowledge:
ref: agno/knowledge/docs-kb
memory:
ref: agno/memory/manager/agent-memory
db:
ref: agno/db/postgres/agent-db
prompt:
ref: agno/prompt/system-prompt
markdown: true
enable_agentic_memory: true
---
# 12. Deploy to Kubernetes
provider: agno
resource: runner
name: support-agent
config:
agents:
- ref: agno/agent/support-agent
config:
ref: kubernetes/config/main-cluster
namespace:
ref: kubernetes/namespace/agents
replicas: 2
cpu: 500m
memory: 2Gi
security_key:
ref: secrets/runner-security-key
field: value
Common Patterns
Team of Agents
Compose multiple specialized agents into a coordinated team.
provider: agno
resource: agent
name: researcher
config:
model:
ref: agno/models/openai/gpt4o
tools:
- ref: agno/tools/websearch/search
instructions:
- "You are a research specialist. Find and summarize information."
---
provider: agno
resource: agent
name: writer
config:
model:
ref: agno/models/anthropic/claude
instructions:
- "You are a technical writer. Create clear, structured content."
---
provider: agno
resource: team
name: content-team
config:
members:
- ref: agno/agent/researcher
- ref: agno/agent/writer
model:
ref: agno/models/anthropic/claude
delegate_to_all_members: true
markdown: true
---
provider: agno
resource: runner
name: content-team
config:
teams:
- ref: agno/team/content-team
config:
ref: kubernetes/config/main-cluster
namespace:
ref: kubernetes/namespace/agents
Knowledge-Augmented Agent (RAG)
An agent with access to a vector knowledge base for semantic search.
provider: agno
resource: vectordb/qdrant
name: kb-vectors
config:
url: http://qdrant.databases.svc.cluster.local:6333
collection: knowledge
search_type: hybrid
---
provider: agno
resource: knowledge
name: product-kb
config:
vector_db:
ref: agno/vectordb/qdrant/kb-vectors
max_results: 10
---
provider: agno
resource: knowledge/content
name: faq
config:
knowledge:
ref: agno/knowledge/product-kb
text_content: |
Q: What are the supported regions?
A: US-East, EU-West, and APAC.
---
provider: agno
resource: agent
name: support-bot
config:
model:
ref: agno/models/openai/gpt4o
knowledge:
ref: agno/knowledge/product-kb
instructions:
- "Answer questions using the knowledge base. Cite sources."
Multi-Tool Agent
An agent with multiple tool integrations.
provider: agno
resource: tools/mcp
name: github-mcp
config:
command: npx -y @modelcontextprotocol/server-github
env:
GITHUB_TOKEN:
ref: secrets/github-token
field: value
---
provider: agno
resource: tools/mcp
name: slack-mcp
config:
url: http://mcp-slack.tools.svc.cluster.local/sse
transport: sse
headers:
Authorization: "Bearer my-token"
include_tools:
- send_message
- read_channel
---
provider: agno
resource: tools/websearch
name: web
config:
backend: auto
enable_news: true
---
provider: agno
resource: agent
name: ops-agent
config:
model:
ref: agno/models/anthropic/claude
tools:
- ref: agno/tools/mcp/github-mcp
- ref: agno/tools/mcp/slack-mcp
- ref: agno/tools/websearch/web
instructions:
- "You are an operations assistant with access to GitHub, Slack, and web search."
Metadata
Release files for pragmatiks-agno-provider 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pragmatiks_agno_provider-1.0.5.tar.gz | 36.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pragmatiks_agno_provider-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 89.2 kB
Release files / pragmatiks_agno_provider-1.0.5.tar.gz
| Download URL | pragmatiks_agno_provider-1.0.5.tar.gz |
|---|---|
| Size | 36.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dce7142f70c2250ef202f57be883e58f13afc7485598f3787bec8b0bed92e405
|
|
BLAKE2b-256 checksum How to use checksums |
b2105995437eee9920c0d2fdae34477d74037d9df70d7daf71f44f78a3299ad3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / pragmatiks_agno_provider-1.0.5-py3-none-any.whl
| Download URL | pragmatiks_agno_provider-1.0.5-py3-none-any.whl |
|---|---|
| Size | 52.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dfae154430b577c817d5f15b7bda98a94c3a47e9d692c77f2660de86269653d9
|
|
BLAKE2b-256 checksum How to use checksums |
fbca7d2354321b92a0cd26e165a91609862add67ec6d5a9b479105f3c24983a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|