
Pydantic AI takes the nice ergonomics of FastAPI and brings it to agents and LLMs. It's super easy
to deploy on Agentuity!
A Simple Pydantic AI Agent
Below is a simple example of a Pydantic AI agent taken from their docs. This shows
you how easy it is to take an existing Pydantic AI agent and drop it in Agentuity.
import random
from pydantic_ai import Agent, RunContext
from agentuity import AgentRequest, AgentResponse, AgentContext
# Example taken from: https://ai.pydantic.dev/agents/#introduction
# The pydantic agent
roulette_agent = Agent(
'openai:gpt-4o',
deps_type=int,
output_type=bool,
system_prompt=(
'Use the `roulette_wheel` function to see if the '
'customer has won based on the number they provide.'
),
)
# A tool for the pydantic agent
@roulette_agent.tool
async def roulette_wheel(ctx: RunContext[int], square: int) -> str:
"""check if the square is a winner"""
return 'winner' if square == ctx.deps else 'loser'
# The Agentuity agent handler
async def run(request: AgentRequest, response: AgentResponse, context: AgentContext):
# Spin that wheel!
success_number = random.randint(0, 20)
# Pull out the user query from the request
user_query = await request.data.text()
if not user_query:
user_query = random.randint(0, 20)
context.logger.info("User query: %s, Winning number: %s", user_query, success_number)
try:
context.logger.info("Calling PydanticAI roulette agent with query: '%s' and deps: %s", user_query, success_number)
pydantic_ai_result = await roulette_agent.run(
user_query,
deps=success_number
)
context.logger.info("PydanticAI result output: %s", pydantic_ai_result.output)
return response.json({
"won": pydantic_ai_result.output,
"details": "Bet processed by PydanticAI roulette agent.",
"user_query": user_query,
"success_number": success_number
})
except Exception as e:
context.logger.error("Error running PydanticAI agent: %s", e)
return response.json({"error": str(e)}, status_code=500)
Integrating with Agentuity
Notice how little code is needed to make this work?
- Define the Pydantic AI agent.
- Wrap the agent invocation within an
AgentHandler function.
- Read the user's input from
req.data.text().
- Return the structured output using
resp.json(). Agentuity handles the JSON serialization automatically.
Deploying to the Cloud
Assuming you have the Agentuity CLI installed and configured, navigate to your project directory and run agentuity deploy.
That's it! Your Pydantic AI agent is now live and accessible via an API endpoint provided by Agentuity.
More examples can be found in the our docs.