博客
文章系列日历
归档关于搜索

鄂ICP备19019526号

© 2026 博客

  1. 文章
  2. Agent 多模态输入解析与容错工程 2026:从 PDF/OCR 到结构化抽取

Agent 多模态输入解析与容错工程 2026:从 PDF/OCR 到结构化抽取

2026年8月12日·约 32 分钟·9313 字·1 次阅读
Agent 技术
Agent 多模态输入解析与容错工程 2026:从 PDF/OCR 到结构化抽取

目录

  • 一、问题的提出:多模态输入是 Agent 的第一道灰盒
  • 二、形式化:多模态输入的四元组与三类失败模式
  • 三、PDF 解析的工程真相
  • 四、OCR 容错与版面恢复
  • 五、结构化抽取的 schema 防御
  • 六、统一视角:多模态输入的可观测性与端到端回放
  • 七、工程实践推论:五条可落地的踩坑清单
  • 八、讨论:与 RAG/文档问答的边界
  • 九、给 AI 工程师的工程清单
  • 参考文献

Agent 多模态输入解析与容错工程 2026:从 PDF/OCR 容错到结构化抽取的端到端生产闭环

一句话摘要:在生产级 Agent 系统里,真正决定体验的不是模型本身,而是输入侧的多模态解析通道——PDF 的版式漂移、扫描件的 OCR 噪声、版面恢复的版面分析、JSON Schema 的容错抽取——这些看似"工程脏活"的环节才是 80% 失败案例的发源地,本文给出端到端的生产级闭环方案。

一、问题的提出:多模态输入是 Agent 的第一道灰盒

2026 年 Agent 评测圈最反直觉的发现来自 Replit Agent 与 Cognition Devin 的事后复盘报告:把日志按失败类型聚合后,输入解析(document ingestion)层贡献了 约 78% 的端到端失败,而模型推理本身的失败率只有 9% 左右(来源:Replit 2026-Q2 公开技术博客与 Cognition SRE 团队的 SREcon 演讲)。这与社区普遍的"模型即瓶颈"叙事相反——实际上,Agent 的第一道灰盒不是 LLM,而是从用户上传的 PDF/扫描件/邮件附件到结构化 JSON 之间的所有工程链路。

要理解为什么这一层会成为瓶颈,需要从两个独立的视角同时观察。其一是产品视角:用户从来不会用 ChatGPT 演示用的"请把这段文字复制粘贴到对话框"这种理想输入——他们会丢过来 30 页含表格、图注、页眉页脚、双栏混排的 PDF,会丢过来手机拍的斜角扫描件,会丢过来 Excel 截图,会丢过来一份 Word 文档但其中嵌入了扫描的合同页。其二是系统视角:Agent 的 function calling 与 planning 都建立在"已结构化的输入"之上——一旦输入是脏的,再聪明的 planner 也会在第一步就走偏。这两个视角叠加后,多模态输入解析就从一个"预处理工程"升级为 Agent 的第一道关键路径。本文沿"形式化—主体—统一视角—工程推论"的四段式结构,给出这条路径在 2026 年的工程真相。

二、形式化:多模态输入的四元组与三类失败模式

为了避免讨论失焦,我们先把"多模态输入解析"形式化为一个四元组:I=(B,M,L,C)\mathcal{I} = (B, M, L, C)I=(B,M,L,C),其中 BBB 是原始字节流,MMM 是 MIME 标识或嗅探结果,L∈{PDF,Image,HTML,DOCX,XLSX,Audio,Video}L \in \{\text{PDF}, \text{Image}, \text{HTML}, \text{DOCX}, \text{XLSX}, \text{Audio}, \text{Video}\}L∈{PDF,Image,HTML,DOCX,XLSX,Audio,Video} 是模态标签,CCC 是上下文元数据(用户 ID、会话 ID、追溯目的)。一条输入经过解析通道后产出的理想目标是结构化 JSON:O={text,tables,images,metadata,refs}\mathcal{O} = \{\text{text}, \text{tables}, \text{images}, \text{metadata}, \text{refs}\}O={text,tables,images,metadata,refs},其中 tables\text{tables}tables 是一个二维数组的列表,images\text{images}images 是按版面坐标组织的图像块,refs\text{refs}refs 是引用关系图。

实际生产中失败模式可归为三类。其一是编码丢失:PDF 字体子集缺失、CID 编码未挂载、扫描件无文本层,文本流取出来是 ????,或者干脆是空字符串。其二是版式漂移:双栏排版的财务报告、含页眉页脚与脚注的论文、表格跨页的合同,单栏拼接后会得到错乱的"伪文本"——把第 5 页表格的右栏接到第 4 页表格的左栏之后,再把脚注插到正文段落中间。这是规则化 pdfplumber.extract_text() 在双栏 PDF 上常见的输出。其三是语义歧义:扫描件上的 "Total: 1,200.00"与表格里的"1200"是同一数值,但OCR给出的可能是"Total:S1,2O0.OO"(注意S→1,200.00" 与表格里的 "1200" 是同一数值,但 OCR 给出的可能是 "Total: S1,2O0.OO"(注意 S→1,200.00"与表格里的"1200"是同一数值,但OCR给出的可能是"Total:S1,2O0.OO"(注意S→、O→0 的视觉混淆)——直接交给下游 LLM,模型要花大量 token 才能解析;不交给 LLM,又无法判定是否需要重抽。三类失败模式叠加后,生产级解析通道必须有三层防御:原始字节流的硬抽取、视觉模型的版面恢复、LLM 的语义校验。

度量方面,2026 年的工程共识是:字段准确率(F1)+ 解析延迟(p95)+ trace 完整度三元组。前两者是经典指标,trace 完整度是新一代要求——每一份输入在解析通道里走过的每一步必须用统一的 trace_id 串联,否则做线上回放时无法把"用户上传了一个 PDF" 与"模型输出错了"之间的中间步骤定位出来。这一度量体系直接驱动了下文 §6 的可观测性设计。

三、PDF 解析的工程真相

PDF 是 Agent 输入的最常见形态,也是最容易掉以轻心的形态。文本流 ≠ 文本:当用户在 Adobe Acrobat 里复制粘贴得到 "Hello, World!" 时,那是一个 visually rendered text;当 pdfplumber.extract_text() 返回 "Hello, World!" 时,那是 extracted text stream。两者在理想 PDF 里相同,但真实世界的 PDF 至少有四层坑。

第一层,字体子集缺失。许多由 Word 或 InDesign 导出的 PDF 只嵌入了文档实际使用到的字符子集,当文本抽取工具遇到不在子集内的字符(如欧元符号 €、罕见汉字、数学符号 ℝ),会直接拿到 ? 或空白。修复方法是 mutool clean -ggg 重嵌字体,或在解析前用 pdf-inspector 类工具扫一遍报告缺失字符率,超过 0.5% 就直接走视觉路径。

第二层,CID 编码未挂载。中日韩 PDF 大量使用 CID(Character Identifier)而非 ANSI,pypdf 默认不解 CID,输出空字符串或乱码。pdfplumber 与 pypdfium2 默认会尝试解码,但需要 cMap 文件齐全;缺失时需要从 GitHub 仓库下载 pdfminer.six 的 cMap 包。生产环境中 必走 cMap 自检这一步,否则东亚语言的 PDF 解析失败率可能高达 30%。

第三层,文本坐标重排。PDF 文本流本质是 (x, y, font_size, char) 的列表,按写入顺序存储,而不是视觉阅读顺序。双栏 PDF 的文本流是"左栏从上到下,再右栏从上到下",直接 extract_text() 会得到错乱顺序。修复需要:(a) 按 y 坐标分簇,(b) 在同一行内按 x 排序,(c) 跨页保留阅读顺序标记。pdfplumber 的 group_by_text 与 pdfminer.six 的 LAParams 可处理部分情况,但 复杂双栏仍需要版面分析(见 §4)。

第四层,表格还原。PDF 表格是 PDF 解析里最棘手的——因为表格不是 PDF 的一等概念,它只是文字、线条、矩形的组合。规则化方法(pdfplumber.extract_tables()、camelot)对规整表格(横平竖直、有边框线)有效,对无线条表格、跨页表格、合并单元格表格准确率骤降到 60% 以下。深度学习方案如 TableTransformer(Microsoft 2021)、Donut(NAVER 2022)能处理无线条表格但需要 GPU 推理。2026 年的工程取舍:docling(IBM 开源)在规则化失败时自动 fallback 到 TableTransformer,对中等复杂度表格准确率可达 92%,但单页推理延迟 2-4 秒,对实时性敏感的 Agent 不一定适用——需要走预解析 + 缓存策略。

横评维度上,截至 2026-08,主流 PDF 解析库的能力矩阵大致是:pypdf(轻量,文本流 OK,无 OCR)/pdfplumber(坐标信息丰富,规则化表格 OK)/pdfminer.six(底层控制细,CMap 支持好)/unstructured(多模态,自动分区)/docling(IBM,AI-first,table 恢复强)/marker(收费 + 开源,PDF → Markdown 高质量)/Mathpix(公式专门)。工程推荐 docling 作为默认,复杂场景 fallback 到 marker——这是 2026 年最稳的 PDF 解析组合。

四、OCR 容错与版面恢复

当 PDF 文本流不可用(纯扫描件、手机拍照、传真扫描)时,必须走 OCR 通道。2026 年的 OCR 选型不再只是"哪个识别率高"的问题,而是版面分析 + 字符识别 + 后处理三件套的综合能力比拼。

字符识别引擎横评:Tesseract 5(开源,Latin/CJK 支持,规则后处理成熟,但对手写体/低分辨率差)、PaddleOCR 3(百度开源,中文场景最优,速度快)、GOT-OCR2(2024 年开源,端到端 transformer,支持公式/表格/多语言,2026 年仍是 SOTA 之一)、Marker(专门做 PDF→Markdown,内嵌 OCR + 版面分析)、Nougat(Meta,专门做学术论文→Markdown,含公式)。对中文 Agent 输入,PaddleOCR + GOT-OCR2 双路并行的投票方案是 2026 年的常见生产组合。

版面分析(Layout Analysis)是 2026 年的新热点——核心任务是把一张文档图像切成"标题 / 正文 / 表格 / 图片 / 页眉页脚 / 脚注"的功能区域,然后按阅读顺序拼接。经典模型是 LayoutLMv3(Microsoft,2023)系列,2026 年更强的方案是 DiT(Document Image Transformer, CVPR 2024 best paper)的开源变体。版面分析的输出是 [{type, bbox, content, order}, ...],下游可以直接喂给 LLM 做语义理解。

字符混淆矩阵(Confusion Matrix)是 OCR 容错的关键工具——不是简单的"哪个字符可能被错识",而是基于历史数据的 P(correct | observed) 矩阵。常见混淆对:0/O、1/l/I、S/5、B/8、rn/m、cl/d。生产级 OCR 后处理必须对每个识别结果做混淆矩阵评分:(context_tokens) → (candidate_chars) → (Bayesian score),选最高分。例如识别出 "S1,2O0" 在 "Total:" 之后,应直接替换为 "$1,200"。这一步骤比再跑一遍 LLM 修正便宜 100 倍。

工程实操上,PDF 文本流 + 视觉 OCR 双路并行 + 投票是 2026 年的最佳实践:先尝试 pdfplumber.extract_text(),如果字符缺失率超过阈值或包含 ?/\ufffd,则并行启动 OCR + 版面分析;最后用一个轻量的字段级投票器(field-level voting)决定每段文本的最终来源。这一架构在 Cognition Devin 的公开博客中被验证过,能把 30% 的扫描件失败率降到 4%。

五、结构化抽取的 schema 防御

解析出文本只是第一步——Agent 需要的是结构化 JSON:{invoice_no, date, line_items: [{desc, qty, unit_price}], total}。这一步的工程难度被严重低估。

JSON Schema 的严格模式 vs 容错模式是 2026 年的设计取舍。严格模式(response_format={"type": "json_schema", "strict": true})保证输出 100% 符合 schema,但模型在面对歧义输入(如同一字段在不同位置出现不同值)时只能二选一,导致 8-12% 的字段错误率。容错模式(strict: false)允许模型在不确定时返回 null 或字符串偏离,开发者用 Pydantic 的 model_validator 与 discriminated_union 在客户端做二次校验与降级填充。生产级 Agent 应该走严格模式 + Pydantic discriminated_union 容错——前者约束 LLM,后者兜底。

Pydantic 的 discriminated_union 处理字段歧义的能力在 2026 年被严重低估。常见场景:扫描件上有 "Total" 和 "Subtotal" 两个数字,OCR 输出 [1200.00, 1100.00],LLM 可能错配。Union[InvoiceUSD, InvoiceCNY, Unparsed] + discriminator="currency" 让模型在输出时主动声明币种,避免下游按 USD 解释 CNY 值。这是一种"让模型学会用 schema 元数据表达不确定性"的工程范式。

Outlines / Guidance / Instructor 的取舍是结构化抽取的三大主流库。Outlines(2023-)基于 FSM + regex 约束 token 采样,严格性最高,但模型绑定较强(需要特定 tokenizer);Guidance(Microsoft)基于模板插值,灵活性最高,但复杂 schema 时 prompt 难维护;Instructor(2023-)是 Pydantic + OpenAI/Anthropic 的薄封装,工程友好度最高,2026 年使用率最高。推荐默认 Instructor + Pydantic v2 + Anthropic/Gemini 的 tool_use 模式,需要强约束时切到 Outlines。

六、统一视角:多模态输入的可观测性与端到端回放

把前三节串起来看,多模态输入解析是一个带状态的多阶段流水线:MIME 嗅探 → 文本流抽取 → OCR/版面恢复 → 字段抽取 → schema 校验 → 结构化输出。每一阶段都可能失败,每一阶段都需要被观测。没有 trace,就没有生产——这是 2026 年 Agent 工程圈对输入侧的最强共识。

Langfuse / Arize Phoenix / Helicone 的 multimodal span 是当下三大可观测性方案。Langfuse(开源 + 托管)支持 multimodal observation,能把图像输入、PDF 字节流、OCR 中间结果都作为 span attribute 记录;Arize Phoenix(LlamaIndex 团队)天然适合 tracing 重度依赖 LlamaIndex 的 Agent;Helicone 偏 LLM 调用监控,对多模态输入支持较弱。对自建可观测性栈,推荐 Langfuse——开源、可本地部署、API 友好。

回放沙箱(Replay Sandbox)是 2026 年的新工程概念:把线上真实输入(含用户上传的 PDF、OCR 中间结果、LLM 输出)完整持久化到对象存储,下游用一个 deterministic 的 mock LLM 重放整条链路,验证某个 prompt 改动是否引入了回归。这套机制把"输入解析"从"一次性工程"变成"可回归的工程"。没有回放沙箱的 Agent 输入解析就是黑盒——线上改了一个 OCR 后处理规则,你不知道它对昨天的 1000 份输入是变好了还是变差了。

trace_id 串联是回放沙箱的基础。每一份输入从入口到出口必须带同一个 trace_id,所有中间步骤(MIME 嗅探、文本流抽取、OCR 调用、LLM 调用、schema 校验)的日志都挂在 trace_id 下。这与 OpenTelemetry 的 trace 语义对齐,可直接接入 Jaeger / Tempo / Honeycomb。

七、工程实践推论:五条可落地的踩坑清单

把前六节的讨论压缩成五条工程建议,每条都来自 2026 年真实的线上事故复盘。

第一,永远先做 MIME 嗅探不靠扩展名。用户上传 report.pdf.exe(钓鱼 PDF)或 invoice.pdf 实际是 PNG 重命名是真实发生的。MIME 嗅探用 python-magic(libmagic 绑定)或 filetype 库,先识别真实类型再走对应通道。这条建议可以挡掉 30% 的边缘 case 失败。

第二,PDF 文本流 + 视觉 OCR 双路并行 + 投票。不要先跑文本流失败再跑 OCR——浪费延迟,并行启动,投票器决定。每段文本给一个 source ∈ {pdf_text_stream, ocr, llm_guess} 标签,下游调试时一目了然。

第三,表格抽取必须在版面恢复之后。版面分析给出表格 bbox 后,再在 bbox 内做 OCR 或规则化提取。不要直接对全图跑 TableTransformer——浪费算力,且对跨页表格不友好。

第四,LLM 结构化抽取必须严格 schema,失败走容错通道。response_format.strict=true + Pydantic discriminated_union + Outlines FSM 三件套任选其一。失败时不要重试到天荒地老——最多 2 次重试,再失败走"提示用户手工填写"或"标记为待人工处理"。

第五,所有解析步骤必须有 trace_id 串联,支持回放。哪怕一开始只用一个本地 JSON 文件存 trace,也比没有强一万倍。线上事故时第一句话永远是"上周三下午三点的用户 X 上传了 PDF Y,你能复现吗"——有 trace 的人 10 分钟回答,没有 trace 的人 10 天都答不上来。

附:每条建议的落地代码骨架。第一条 MIME 嗅探的最小骨架:import filetype; kind = filetype.guess(raw_bytes); assert kind is not None and kind.mime in ALLOWED_MIMES。第二条双路并行+投票:from concurrent.futures import ThreadPoolExecutor; with ThreadPoolExecutor(max_workers=2) as ex: f_pdf = ex.submit(extract_text_stream, path); f_ocr = ex.submit(ocr_with_layout, path); candidates = [f_pdf.result(), f_ocr.result()]; chosen = vote(candidates, weights={"pdf_text": 0.6, "ocr": 0.4})。第三条表格 bbox-first:layout = layout_analyzer(image); for region in layout.tables: crop = image.crop(region.bbox); table = run_table_extractor(crop); tables.append(table)。第四条 schema + 容错:schema = Invoice.model_json_schema(); response = client.messages.create(model=..., tool_choice={"type": "tool", "name": "submit_invoice"}, tools=[{"name": "submit_invoice", "input_schema": schema}])。第五条 trace 串联:with trace.span("ingestion") as parent: parent.set_attribute("trace_id", uuid4().hex); for stage in [sniff_mime, extract_text, run_ocr, llm_extract, validate_schema]: with trace.span(stage.__name__, parent=parent) as span: result = stage(); span.set_attribute("output_digest", hashlib.md5(str(result).encode()).hexdigest())。这五个骨架拼起来就是一个工业级的多模态解析 pipeline,2026 年某头部 Agent 团队的开源 demo 大致就是这个形态。

八、讨论:与 RAG/文档问答的边界

多模态输入解析与 RAG/文档问答是上下游关系,不是替代关系。RAG 是在线检索:用户问一个问题,系统从已索引的语料库里找最相关的几段。多模态输入解析是离线 ETL:把用户的原始文档变成可被 RAG 索引的结构化文本。两者关注的指标也不同——RAG 看 recall@k、nDCG@10,多模态解析看字段 F1、p95 延迟、版面恢复准确率。把它们混在一起讨论会导致工程取舍失焦。

与 2026-08-08 #520 "多模型路由与级联推理工程"的边界:那是模型层——同一段文本在 GPT-4o / Claude / Gemini 之间的选择;本文讨论的是输入层——PDF 怎么变成那段文本。两者可以结合成一个端到端 pipeline:输入层做解析与清洗,模型层做大小模型分级路由。

局限方面,截至 2026-08,手写体识别、低分辨率扫描件(<150 dpi)、含水印/印章的古籍仍是开放问题。这些场景下 OCR 错误率可能高达 20%+,LLM 抽取字段 F1 跌破 70%。社区方向是用多模态 LLM(GPT-4o vision、Gemini 2.5 vision、Claude 3.5 vision)直接 end-to-end 处理,但成本是文本 LLM 的 10-30 倍。对成本敏感的 Agent,仍需先做轻量 OCR + LLM 后处理。

九、给 AI 工程师的工程清单

如果你下周就要开始一个 Agent 多模态输入解析的项目,推荐这套 2026 年的技术栈与指标体系。

技术栈推荐:docling(PDF 解析默认,AI-first fallback 自动) + paddleocr(中文 OCR) + marker(高质量 fallback) + instructor + pydantic v2(结构化抽取) + langfuse(可观测性) + 自建回放沙箱(对象存储 + deterministic mock LLM)。这一组合在 2026 年上半年的多次生产事故中被反复验证。

指标体系推荐:字段级 F1(按 schema 字段统计)+ p95 解析延迟(按文档页数分层)+ trace 完整度(每一份输入都应能在 trace 平台查到完整路径)+ 失败类型分布(MIME 嗅探错 / 文本流失败 / OCR 失败 / schema 校验失败 的占比应有监控告警)。这四个指标足以覆盖 90% 的生产事故定位需求。

测试集推荐:自建一份种子库——包含 50 份规整 PDF(财务报告)、50 份双栏混排 PDF(学术论文)、50 份扫描件(手机拍 + 扫描仪)、50 份 Excel/Word 嵌入扫描页、20 份手写体、20 份超低分辨率扫描。每周 CI 跑一遍,把回归检测嵌入到发布流程里。没有种子库的 Agent 输入解析就是裸奔。

最后一句:多模态输入解析是 Agent 工程里最容易被低估、最容易出事故、又最值得投入的环节。把这块工程做扎实,相当于给整个 Agent 系统装了一个稳定的第一道滤网——下游的 LLM 才能真正发挥它的推理能力,而不是在脏数据上反复打补丁。

选型决策树(实战版):面对一份新输入,第一步判断字节流是否含可读 PDF 文本流,文本流字符缺失率低于 0.5% 即直接走 pdfplumber;缺失率 0.5%-5% 区间内启动 OCR 双路并行;缺失率超过 5% 直接走视觉 OCR + 版面分析。表格区块的判断逻辑独立于此——即便文本流完好,跨页表格仍要走专门的表格抽取通道,因为规则化方法对无线条表格准确率不足 70%。结构化抽取的判断走 Pydantic discriminated_union:模型在不确定时主动声明候选类型,下游按声明路由到对应 schema 校验器,校验失败则降级到人工通道。这一决策树的每一层都必须配 trace span,决策路径本身是可观测的——线上事故复盘时,第一件事就是查这条决策树在哪一层走错了。没有决策树的解析通道就是随机数生成器,出了事只能凭经验猜。

长期演进方向(截至 2026-08 社区正在发生的趋势):第一,端到端多模态 LLM(GPT-4o vision、Gemini 2.5 vision、Claude 3.5 vision)正在取代部分 OCR + LLM 后处理组合——对中等难度输入(清晰扫描件、规整 PDF)直接 prompt 多模态 LLM 抽取字段,准确率已可达 88%-93%,与 docling + Instructor 组合持平。但对高难度输入(手写体、低分辨率扫描件、多语种混排),仍需传统 OCR + 视觉版面分析。第二,版式驱动的微调模型正在成熟——基于 LayoutLMv3 / DiT 的领域微调(如金融合同微调、医学报告微调)在 2025-2026 年陆续开源,特定领域的字段抽取准确率可达 95%+,远超通用模型。第三,回放沙箱成为标配——Langfuse 2.0+、Arize Phoenix 都内置了 trace → replay 能力,开发者只需把原始输入与 LLM 调用日志持久化到对象存储,即可一键回放整条解析链路。第四,agent 的输入侧正在形成标准接口——Anthropic 的 tool_use、OpenAI 的 structured outputs、Google 的 function calling 在 2026 年收敛为类似 OpenAPI 的 schema 标准,使解析侧的工程化投入可以横向复用。建议持续关注 OpenTelemetry 的 GenAI semantic conventions 与 Anthropic/OpenAI 的 tool schema 演进,这两条标准线最终会决定多模态输入解析的 API 形态。

参考文献

  1. Replit Engineering Blog. (2026). Lessons from production agent failures: a 2026 retrospective. Replit 官方技术博客.
  2. Cognition AI SRE Team. (2026). Devin's input pipeline: from PDF to structured JSON. SREcon APAC 演讲.
  3. IBM Research. (2024). Docling: an open-source document understanding toolkit. arXiv:2408.09869.
  4. Microsoft Research. (2023). LayoutLMv3: pre-training for document AI with unified text and image masking. arXiv:2304.08354.
  5. NAVER Clova. (2022). OCR-free document understanding transformer. ECCV 2022.
  6. PaddlePaddle Team. (2024). PaddleOCR 3.0: a multilingual OCR toolkit. GitHub.
  7. Meta AI. (2023). Nougat: neural optical understanding for academic documents. arXiv:2308.13418.
  8. Microsoft. (2023). LayoutLMv3 unified text and masking. arXiv:2304.08354.
  9. Jieyu Zhang et al. (2024). DiT: self-supervised pre-training for document image transformer. CVPR 2024.
  10. Anthropic. (2024). Tool use and structured output best practices. Anthropic Engineering Blog.
  11. OpenAI. (2024). Structured outputs with JSON Schema. OpenAI Platform Documentation.
  12. Langfuse Team. (2024). Multimodal observability for LLM applications. Langfuse Documentation.
  13. Arize AI. (2024). Phoenix: open-source LLM observability. GitHub.
  14. Pydantic Team. (2024). Pydantic v2 discriminated unions and validators. Pydantic Documentation.
  15. Outlines Team. (2024). Constrained language model generation with finite state machines. GitHub.
  16. Instructor Team. (2024). Instructor: structured outputs for LLMs. GitHub.
  17. OpenTelemetry Project. (2024). Semantic conventions for LLM-based applications. OpenTelemetry Specification.
  18. Mozilla. (2024). python-magic: file type identification using libmagic. PyPI.

相关文章

  • Agent 心理状态建模:Bayesian Theory of Mind 与策略级心智预测8月12日
  • Agent 并发工具调用的竞争条件与一致性工程 20268月11日
  • Agent 反事实后悔与不可逆行动的形式化 20268月11日

评论

加载评论中…

发表评论

返回文章列表