《AI Agent 工程实战》2.1 分层配置:pydantic-settings 加载与校验
复核 pydantic-settings 2.14.2 的完整配置文件、JSON/env/显式参数优先级、非法值与 load 入口,明确额外字段和当前执行范围。
category
复核 pydantic-settings 2.14.2 的完整配置文件、JSON/env/显式参数优先级、非法值与 load 入口,明确额外字段和当前执行范围。
用标准库按完整用户轮次裁剪历史,保留系统指令和最近一轮,将工具描述及裁剪说明计入近似预算;超限无法满足时在调用模型前明确失败。
本节让同一个 Model 协议接入 Anthropic SDK,重点是双向转换、工具结果成批回填和显式拒绝不支持的响应。适配器不做业务重试。普通文本和客户端 tool_use 是本例支持的范围。thinking、server_tool_use 等块以及 refusal、pause_turn 等停止原因需要独立协议设计;本例明确拒绝,不把它们折成正常 final。Message 只保存拼接文本与工具列表,不能无损保留任意供应商 block 的交错顺序。
本节把「调用大模型」抽象成 minagent 的 Model 协议:用一个 complete(messages, tools) 方法屏蔽供应商差异,用统一的 ModelResponse 承载回复、停止原因与用量。我们讲清协议为什么存在、complete 与 stream 如何取舍,再给出 EchoModel 与 ScriptedModel 两个可运行实现,并验证它们可以互换。
从 minagent 全卷交付建立离线 ResearchCopilot 骨架,提供完整基础配置、桥接代码和 Python/Node 冒烟测试,明确打包、lint 与远程 CI 的待验证前提。
本节给 ResearchCopilot 画出四层边界:卷一的 minagent 引擎层、FastAPI 服务层、异步 worker 层、Postgres 加 Redis 的存储层。我们用一张 ASCII 图和一张职责表说清每层管什么、不该管什么,用可跑的检查脚本钉死依赖方向,并完整走一遍一个提问从进来到出结果、跨四层的时序。
本节为 ResearchCopilot 立下 3 个可验收的核心用例:单跳事实问答、多跳研究并输出带引用报告、后台周期 digest。每个用例都给出量化验收标准与落地章节映射,并明确列出不做通用聊天、不做 MCP Server 实现、不做多租户计费这三条边界,把项目范围钉死在可交付的一小块上。
本节写下全书的测试基石 FakeModel:一个按脚本列表吐响应的假模型,脚本元素可以是文本、ToolCall 列表或 ModelResponse,它记录每次调用入参、脚本耗尽即抛 RuntimeError。随后用一个极简循环跑通「add 到 mul 再文本收敛」,打印完整轨迹并断言两次运行逐字节一致。
定义内部消息、工具调用与模型响应,提供可直接保存的完整文件,验证纯文本和文本/工具混合消息的序列化往返,并说明静态类型与供应商格式的边界。
本节为 minagent 搭好双栈环境与仓库骨架:用 Python 3.14.6 建虚拟环境并配置中科大 PyPI 镜像,用 Node 26.5.0 备好 TypeScript 对照线;再建出 minagent/ 包与 tests/ 目录,git init 并完成首个提交,最后用一行命令实测验证解释器版本。