Hello!
I have encountered an incomprehensible behavior of the framework.
First,
the code from the instruction does not work:
from pydantic_ai import Agent
from fasta2a.pydantic_ai import agent_to_a2a
agent = Agent('openai:gpt-5.5')
app = agent_to_a2a(agent)
It raises the following error:
TaskManager was not properly initialized.
After some googling I have got a working code:
import uvicorn
from contextlib import asynccontextmanager
from fasta2a.pydantic_ai import agent_to_a2a
from starlette.applications import Starlette
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider
provider = OpenAIProvider(
base_url='http://localhost:8080/v1',
api_key="pydantic-ai",
)
model = OpenAIChatModel(
model_name="Qwen3.6-35B",
provider=provider,
)
agent = Agent(
name="Assistant",
model=model
)
a2a_app = agent_to_a2a(
agent,
name="agent",
url="http://localhost:8000/agent",
version="1.0.0",
)
@asynccontextmanager
async def lifespan(app: Starlette):
async with a2a_app.router.lifespan_context(a2a_app):
yield
app = Starlette(lifespan=lifespan)
app.mount("/agent", a2a_app)
if __name__ == '__main__':
uvicorn.run(app, port=8000)
And if I visit http://localhost:8000/agent/docs I see the A2A protocol documentation page and chat. But the chat sends requests to the root, ignores the /agent part, and stops working.
And the application log looks like this:
INFO: 127.0.0.1:60182 - "GET /agent/docs HTTP/1.1" 200 OK
INFO: 127.0.0.1:60182 - "GET /.well-known/agent-card.json HTTP/1.1" 404 Not Found
INFO: 127.0.0.1:60182 - "POST / HTTP/1.1" 404 Not Found
If I modify the mount path to the root it works well:
- app.mount("/agent", a2a_app)
+ app.mount("/", a2a_app)
Is there a proper way to specify the root path for the docs page?
Hello!
I have encountered an incomprehensible behavior of the framework.
First,
the code from the instruction does not work:
It raises the following error:
After some googling I have got a working code:
And if I visit
http://localhost:8000/agent/docsI see the A2A protocol documentation page and chat. But the chat sends requests to the root, ignores the/agentpart, and stops working.And the application log looks like this:
If I modify the mount path to the root it works well:
Is there a proper way to specify the root path for the docs page?