8.0
热点
AI SCORE
编程提效2026-09-21 22:36
防御式 Agent 架构:Schema 注入与超时控制
dev.to · AI#Agent#架构#防御式编程
Editor brief · 编辑速览
通过 schema 注入确保 LLM 输出结构化参数,4 秒硬超时 + 降级 fallback 防止 agent 挂死和级联崩溃。
Schema 注入:SearchParams.model_json_schema() 被传入 LLM 的 tool/function calling 定义中。
确定性调用:LLM 输出一个匹配 SearchParams 的 JSON 载荷。
执行与验证:fetch_live_content 验证参数,在严格的 4 秒窗口内发送 HTTP 调用,并将结果反序列化为 ContentChunk 对象。
上下文注入:序列化的数据块及其各自的 id 被重新注入 LLM 上下文,用于综合生成和引用锚定。
此模式解决了 AI 工程中的一个关键故障模式:将概率性语言模型连接到确定性生产系统的脆弱性。
工具输入幻觉:LLM 经常偏离轨道或生成格式错误的参数(例如请求 -10 或 1,000,000 项,或传递无法解析的类型)。通过 SearchParams 定义输入会强制模型遵守严格的边界约束(ge=1, le=10),在请求到达基础设施之前拦截无效的工具调用。
Agent 挂起与成本失控:缺乏硬性超时限制时,缓慢的外部 API 或向量索引会导致 agent 无限期挂起。这会阻塞服务器线程、降低用户体验,并增加云成本。明确的 4 秒超时对等待时间施加了确定性的上限约束。
级联应用崩溃:未处理的 HTTP 错误(429 速率限制、500 服务器崩溃)会导致朴素的 agent 运行时崩溃。将这些故障吞没到结构化的降级处理中(return [])使 agent 能够优雅地处理数据缺失,而不是抛出未捕获的异常。