用途:介绍在 PydanticAI 中注册与实现工具(tool)的规范,让智能体获得调用外部能力的方式。
主要能力:提供两种注册装饰器。@agent.tool 要求第一个参数必须是 RunContext[DepsType];@agent.tool_plain 则不允许出现 RunContext 参数。工具需有非空 docstring 供模型理解用途,参数需在文档中说明,默认使用 Google 风格,也可通过 docstring_format='sphinx' 切换为 Sphinx 风格。返回值可为字符串、Pydantic 模型、字典(序列化为 JSON),或用 ToolReturn 返回自定义内容类型(如 ImageUrl)。
上下文:RunContext 可访问依赖 ctx.deps、模型信息 ctx.model.model_name、用量 ctx.usage.total_tokens、重试信息 ctx.retry 与 ctx.max_retries、消息历史 ctx.messages。
用法要点:装饰器必须与函数签名匹配;@agent.tool 的首参须为 RunContext 且位于第一位;@agent.tool_plain 签名中不得含 RunContext。异步与同步均可,I/O 操作推荐 async。
进阶:prepare_tools 函数可按请求动态过滤或修改工具定义,例如对非管理员隐藏 admin_ 前缀工具;FunctionToolset 可分组工具,CombinedToolset 可组合多个工具集,并通过 toolsets 参数传入 Agent。
限制:资料未提供安装命令、版本要求、收费与平台信息,暂未提供。