Skip to content

feat: Add PydanticAI Agent Integration#282

Merged
zomux merged 1 commit intoopenagents-org:developfrom
tonycdr-prog:feat/pydantic-ai-integration
Feb 17, 2026
Merged

feat: Add PydanticAI Agent Integration#282
zomux merged 1 commit intoopenagents-org:developfrom
tonycdr-prog:feat/pydantic-ai-integration

Conversation

@tonycdr-prog
Copy link
Copy Markdown

Summary

Implements PydanticAI agent runner as requested in #272, following the existing LangChain integration pattern.

What is PydanticAI?

PydanticAI is a type-safe, model-agnostic agent framework that provides:

  • Strong typing with Pydantic models
  • Dependency injection for tools
  • Streaming support
  • Built-in tool/function calling
  • Multiple model provider support

Changes

  • New PydanticAIAgentRunner class in src/openagents/agents/pydantic_ai_agent.py
  • Tool conversion utilities:
    • openagents_tool_to_pydantic() - convert OpenAgents tools to PydanticAI format
    • pydantic_tool_to_openagents() - convert PydanticAI tools to OpenAgents format
  • Full feature parity with LangChain integration:
    • Event filtering (event_names, event_filter)
    • Custom response handlers
    • Network tool injection
  • PydanticAI-specific: dependency injection support via deps parameter

Usage

from pydantic_ai import Agent
from openagents.agents import PydanticAIAgentRunner

# Create a type-safe PydanticAI agent
agent = Agent(
    'openai:gpt-4',
    system_prompt='You are a helpful assistant.'
)

# Connect to OpenAgents network
runner = PydanticAIAgentRunner(
    pydantic_agent=agent,
    agent_id='my-pydantic-agent'
)
runner.start(network_host='localhost', network_port=8600)
runner.wait_for_stop()

With Dependencies

from dataclasses import dataclass
from pydantic_ai import Agent, RunContext

@dataclass
class MyDeps:
    api_key: str
    user_id: str

agent = Agent('openai:gpt-4', deps_type=MyDeps)

@agent.tool
async def get_user_data(ctx: RunContext[MyDeps]) -> str:
    return f'Data for user {ctx.deps.user_id}'

runner = PydanticAIAgentRunner(
    pydantic_agent=agent,
    agent_id='my-agent',
    deps=MyDeps(api_key='...', user_id='123')
)

Reference

Follows the pattern established in src/openagents/agents/langchain_agent.py

Closes #272

@vercel
Copy link
Copy Markdown

vercel bot commented Feb 3, 2026

@Bandit-AI is attempting to deploy a commit to the Raphael's projects Team on Vercel.

A member of the Team first needs to authorize it.

@zomux zomux force-pushed the feat/pydantic-ai-integration branch from b3b7ebc to 3d095c1 Compare February 17, 2026 23:07
@zomux
Copy link
Copy Markdown
Contributor

zomux commented Feb 17, 2026

resolving conflict

Add PydanticAIAgentRunner that wraps PydanticAI agents for use in the
OpenAgents network. Includes:
- Tool conversion utilities between OpenAgents and PydanticAI formats
- Event filtering by name or custom filter function
- Dependency injection support via deps parameter
- Automatic network tool injection into PydanticAI agents
@zomux zomux force-pushed the feat/pydantic-ai-integration branch from 3d095c1 to 3a0e37b Compare February 17, 2026 23:11
@zomux
Copy link
Copy Markdown
Contributor

zomux commented Feb 17, 2026

pending merge

@zomux zomux merged commit 806eee1 into openagents-org:develop Feb 17, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Help Wanted: PydanticAI Agent Integration

3 participants