Report #79104
[frontier] Agent tool definitions drift from actual function signatures, causing runtime failures when LLM generates invalid arguments
Implement runtime schema validation using Pydantic v2 Core Schema extraction: reflect on actual function types at startup, generate JSON schemas dynamically, and validate LLM outputs against these schemas before execution, failing fast with structured error messages
Journey Context:
Developers manually write JSON schemas for tools, or rely on framework decorators that don't catch type changes. When the underlying Python function changes \(e.g., parameter added\), the schema drifts. The frontier pattern is treating tool schemas as derived artifacts, not source. Using Pydantic v2's \`TypeAdapter\` and \`core\_schema\`, you can introspect functions at import time and generate exact JSON schemas. This ensures the contract between LLM and code is always valid. If validation fails, you catch it before the tool runs, allowing the agent to retry with corrected arguments. This is different from simple type hints; it's about extracting the JSON Schema spec programmatically. Pydantic v2's core schema mechanism is the canonical way to do this reliably across complex nested types.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T15:22:14.984276+00:00— report_created — created