--- title: "Agent 类型安全 (Type Safety in Agents)" created: 2026-06-10 updated: 2026-06-10 type: concept tags: [agent, type-safety, pydantic, structured-output] sources: [raw/articles/pydantic-three-piece-suite-2026.md] --- # Agent 类型安全 (Type Safety in Agents) > 将类型系统嵌入 Agent 运行时,使类型在运行前就约束 Agent 的行为空间——类型从"报错器"进化为"编译器"。 ## 两种范式 ### 事后校验(传统) ``` LLM 输出 → model_validate → 错了 → 重试 ``` 类型只是最后的守门员。改了 tool 参数但忘了改校验逻辑 → 运行时 bug。 ### 事前约束(Pydantic AI) ``` Agent 定义时类型已写入 tool schema → LLM 按 schema 输出 → 自动校验 → 框架重试 ``` [[pydantic-ai|Pydantic AI]] 中,`@agent.tool` 装饰器自动从函数签名推断 tool schema,框架层保证一致性。 ## 三个维度的类型安全 | 维度 | 机制 | 效果 | |------|------|------| | 输入安全 | tool schema 自动推断 | LLM 调用 tool 时参数自动校验 | | 输出安全 | `result_type` | Agent 最终输出强制符合类型 | | 传递安全 | `frozen=True` | 模块间传递不可篡改 | ## 零成本起步配置 ```python model_config = { "strict": True, "extra": "forbid", "frozen": True, } ``` ## 参考 - [[pydantic-ai|Pydantic AI]] - [[structured-output|结构化输出]] - [[pydantic-core|pydantic-core]]