{
  "sdk": "pydantic-ai-slim",
  "version": "2.57.0",
  "provider": "FunctionModel author deterministic loop, not an LLM",
  "runs": [
    {
      "limit_case": "requests",
      "provider_responses": 3,
      "tool_executions": 3,
      "exception": "The next request would exceed the request_limit of 3. Consider raising the limit, or see the docs on usage limits for budget-aware patterns: https://pydantic.dev/docs/ai/core-concepts/agent/#usage-limits"
    },
    {
      "limit_case": "tools",
      "provider_responses": 3,
      "tool_executions": 2,
      "exception": "The next tool call(s) would exceed the tool_calls_limit of 2 (tool_calls=3). Consider raising the limit, or see the docs on usage limits for budget-aware patterns: https://pydantic.dev/docs/ai/core-concepts/agent/#usage-limits"
    }
  ],
  "paid_or_network_model_calls": 0
}
                 pydantic-ai v2.57.0 • Python 3.12.13
      / \
     /   \       agent: agent • model: function:function:respond: • tools: 1 • capabilities: 0
   /___.___\
  /    |    \    observability: off — see every model and tool call live, with cost
/      |      \    set it up free with Logfire and a GitHub login: https://pydantic.dev/ai-setup.md
`---.._|_..---'    or use any OpenTelemetry backend: https://pydantic.dev/docs/ai/logfire/#otel

                 goes away once observability is on — or PYDANTIC_AI_NO_BANNER=1
