【免费下载链接】pydantic-ai-harnessYour agents favorite harness, built on Pydantic AI项目地址https://gitcode.com/gh_mirrors/py/pydantic-ai-harness点击查看免费下载Pydantic AI Harness是 Pydantic AI 官方的能力capability库其中的Code ModeCodeMode能力让 Agent 摆脱每次工具调用都要跑一轮模型的传统模式模型只需编写一个 Python 脚本就能在沙箱里一口气调用10 个甚至更多工具用循环、条件、asyncio.gather并行取数只把最终结果带回对话——延迟更低、成本更小token 膨胀难题就此终结。痛点传统工具调用为什么烧 token标准工具调用模式下Agent 每执行一批依赖调用就需要一次新的模型往返对比维度传统工具调用Code Mode依赖工具批处理跨多个模型轮次一次run_code内完成多个依赖调用并行方式仅当模型一次性发出批量调用用 Python 原生表达并行本地计算无结果全部回传模型在代码里过滤、转换、聚合对话历史冗长、token 膨胀精简——消息更少比如抓取 10 条数据再逐条处理这类任务传统方式下每个中间结果都会塞进对话历史而 Code Mode 下中间结果只存在于沙箱内存中模型只看到最终答案。Code Mode 如何工作把工具变成函数CodeMode会把符合条件的工具包装进一个名为run_code的沙箱工具基于 Monty 沙箱运行时。模型不再逐个发起工具调用而是写一段 Python 编排代码把工具当函数调用上图中一次run_code调用就并行抓取了 3 个 HN feed、去重、按分数过滤并按评论数排序——全部在一段脚本里完成。官方文档在 docs/code-mode.md核心实现位于 pydantic_ai_harness/code_mode/ 目录。快速上手3 步启用 Code Mode第 1 步安装Code Mode 依赖 Monty 沙箱通过codemode附加组件安装code-mode是等价别名见 pyproject.tomluv add pydantic-ai-harness[codemode]pip 用户执行pip install pydantic-ai-harness[codemode]即可。第 2 步给 Agent 加上CodeMode()from pydantic_ai import Agent from pydantic_ai_harness import CodeMode agent Agent(anthropic:claude-sonnet-4-6, capabilities[CodeMode()]) agent.tool_plain def get_weather(city: str) - dict: 获取城市当前天气。 return {city: city, temp_f: 72, condition: sunny}第 3 步照常提问result agent.run_sync(巴黎和东京现在多少度摄氏度) print(result.output)模型会在一次run_code内写出类似这样的代码import asyncio paris, tokyo await asyncio.gather( get_weather(cityParis), get_weather(cityTokyo), ) {paris: round((paris[temp_f] - 32) * 5 / 9, 1), tokyo: round((tokyo[temp_f] - 32) * 5 / 9, 1)}两次天气查询并行执行华氏转摄氏在沙箱内完成对话历史里只多了一条紧凑的消息。进阶一只沙箱化你想沙箱的工具 默认CodeMode(toolsall)会收编所有符合条件的工具。你也可以精细控制未选中的工具仍保持普通工具调用形式# 按名字仅这两个工具进入 run_code CodeMode(tools[search, fetch]) # 按谓词排除危险工具 CodeMode(toolslambda ctx, td: td.name ! dangerous_tool) # 按元数据适合共享工具集用 .with_metadata(code_modeTrue) 打标签 CodeMode(tools{code_mode: True})注意Shell 类命令工具如run_command会保留为原生工具、与run_code并列避免模型在生成的 Python 字符串里再套一层 shell 命令。进阶二eager 与 speculate 双提速 Code Mode 提供两种性能模式实现分别在 pydantic_ai_harness/code_mode/_eager.py 和 pydantic_ai_harness/code_mode/_speculation.pyeagerTrue抢先执行模型还在逐行生成代码时已写完的行立刻开始执行工具延迟与模型生成时间重叠。speculate[...]推测执行流式接收代码的过程中发现参数为字面量的只读工具调用就提前发起脚本真正执行到时直接认领已在飞行的结果。也可传speculatedeclared信任工具自声明的read_only元数据。agent Agent( openai:gpt-5.6-sol, capabilities[CodeMode(eagerTrue, speculate[lookup_author, lookup_year])], )⚠️ 提醒推测执行可能提前发起外部请求即使最终用不到请只把无副作用、可重复的工具列入白名单。安全边界沙箱限制与资源配额 ️沙箱默认很紧不用担心失控脚本无宿主访问默认没有文件系统、环境变量、时钟可用mountMountDir(...)挂载目录、os_access注入环境变量资源上限单次run_code默认 30 秒执行时间 256 MiB 内存max_tool_calls默认 100 次嵌套调用受限标准库仅允许sys、typing、asyncio、math、json、re、datetime、os、pathlib等无第三方导入REPL 状态延续同一 Agent 运行内变量、导入在多次run_code间保留传restart: true可重置。返回值也很省心代码的最后一个表达式自动作为结果返回无需print()。验证效果用追踪面板看工具扇出 配合 Logfire 或任意 OpenTelemetry 后端run_code的每个 span 都会扇出为沙箱内发起的各个工具调用——这是理解 Code Mode 实际行为的最直观方式图中可见两次run_code分别扇出 3 个hn_get_stories并行调用和 3 个后续查询token 消耗被压缩到 3 轮模型对话。常用配置速查表参数默认值说明toolsall选择进入沙箱的工具全部 / 名字列表 / 谓词 / 元数据max_retries3沙箱执行错误含语法错误重试次数max_tool_calls100单次run_code允许的嵌套工具调用数resource_limits30 秒 / 256 MiB沙箱时间与内存上限可设为unlimitedeagerFalse模型边写边执行提前启动工具调用speculateNone推测执行白名单或declaredmount/os_accessNone宿主目录挂载 / 自定义 OS 行为CodeMode还支持在 YAML/JSON Agent 规格中声明capabilities: - CodeMode: tools: [search, fetch] max_retries: 5结语Code Mode 用让模型写代码调用工具这一思路把多轮模型往返压缩成一次沙箱执行并行、过滤、聚合都在 Python 里完成对话历史保持精简。只需一行capabilities[CodeMode()]就能让你的 Agent 告别 token 膨胀。 更多资料完整文档 docs/code-mode.md、模块说明 pydantic_ai_harness/code_mode/README.md、核心实现 pydantic_ai_harness/code_mode/_capability.py。赞分享【免费下载链接】pydantic-ai-harnessYour agents favorite harness, built on Pydantic AI项目地址https://gitcode.com/gh_mirrors/py/pydantic-ai-harness点击查看免费下载相关推荐彻底解决过度分散数据难题Statsmodels零膨胀模型实战指南彻底解决过度分散数据难题Statsmodels零膨胀模型实战指南 你是否还在为计数数据中的过度分散问题头疼普通模型预测结果总是偏离实际本文将带你用Stat数据科学科学计算数据分析彻底解决PostgreSQL表膨胀难题pg_repack无锁重组方案全解析彻底解决PostgreSQL表膨胀难题pg_repack无锁重组方案全解析 你是否正面临这些数据库痛点 PostgreSQL作为企业级关系型数据库在长期运数据库OptiScaler终极指南跨显卡AI超分辨率技术实战与深度解析OptiScaler终极指南跨显卡AI超分辨率技术实战与深度解析 OptiScaler是一款革命性的开源AI超分辨率中间件它打破了显卡厂商的技术壁垒让所有游戏开发图形学上一篇彻底解决PDFMathTranslate离线模型加载失败的7大方案下一篇Ursa.Avalonia项目中ThemeToggleButton组件与系统主题监听冲突问题解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?