十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Agno 接入 Azure AI Foundry 版 Claude:环境配置、工具调用与扩展思考实战指南

Agno 接入 Azure AI Foundry 版 Claude:环境配置、工具调用与扩展思考实战指南 Agno 接入 Azure AI Foundry 版 Claude环境配置、工具调用与扩展思考实战指南【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno本篇指南围绕 Agno 仓库cookbook/90_models/azure/claude/目录的官方示例讲解如何在 Agno 中接入 Azure AI Foundry 托管的 Anthropic Claude 模型从虚拟环境搭建、Azure 凭据配置到基础 Agent 运行、Web 搜索工具调用与扩展思考Extended Thinking的完整实操。读完后你将能够独立完成 Azure 凭据导出、模型字符串前缀与类实例化两种配置方式的切换并结合源码理解 Agno 底层如何构建AnthropicFoundry客户端。一、准备工作虚拟环境与 Azure 凭据配置接入 Azure AI Foundry Claude 前需要准备好 Python 虚拟环境和 Azure 侧的认证信息。Agno 的 Azure 集成基于anthropicPython SDK 中提供的AnthropicFoundry/AsyncAnthropicFoundry客户端因此anthropic包是必要依赖。1. 创建并激活虚拟环境python3 -m venv ~/.venvs/aienv source ~/.venvs/aienv/bin/activate2. 导出 Azure 凭据Claude on Azure AI Foundry 通过以下环境变量完成认证与路由三组凭据二选一即可RESOURCE或BASE_URLexport ANTHROPIC_FOUNDRY_API_KEY*** export ANTHROPIC_FOUNDRY_RESOURCEyour-resource-name或者直接使用 base URL 代替资源名export ANTHROPIC_FOUNDRY_BASE_URLhttps://your-resource.services.ai.azure.com从源码看模型客户端参数解析逻辑 中的_get_client_params()按如下优先级读取凭据ANTHROPIC_FOUNDRY_API_KEY→ 映射为 SDK 的api_keyANTHROPIC_FOUNDRY_RESOURCE→ 映射为resourceANTHROPIC_FOUNDRY_BASE_URL→ 映射为base_url若以上均未提供也可以传入azure_ad_token_provider一个返回 token 的 callable走 Azure AD 认证。若既无 API Key 又无 token providerAgno 会通过log_warning提示 Azure credentials not found。3. 安装依赖uv pip install -U anthropic agno二、运行基础 Agent最简示例见 basic.py核心只有三行模型 Agent 配置from agno.agent import Agent from agno.models.azure.claude import Claude agent Agent(modelClaude(idclaude-sonnet-4-6), markdownTrue)该示例完整覆盖了四种运行形态均可直接复制运行import asyncio # 同步 agent.print_response(Share a 2 sentence horror story) # 同步 流式 agent.print_response(Share a 2 sentence horror story, streamTrue) # 异步 asyncio.run(agent.aprint_response(Share a 2 sentence horror story)) # 异步 流式 asyncio.run(agent.aprint_response(Share a 2 sentence horror story, streamTrue))运行入口python cookbook/90_models/azure/claude/basic.py三、运行带工具的 Agenttool_use.py 演示了为 Azure Foundry Claude Agent 挂载 Web 搜索工具from agno.agent import Agent from agno.models.azure.claude import Claude from agno.tools.websearch import WebSearchTools agent Agent( modelClaude(idclaude-sonnet-4-6), tools[WebSearchTools()], markdownTrue, )WebSearchTools依赖ddgs库需先安装uv pip install -U ddgs python cookbook/90_models/azure/claude/tool_use.py示例中的提示词为 Whats happening in France?Agent 会先调用搜索工具再综合回答同样支持streamTrue流式输出与aprint_response异步调用。工具在发出请求前会经过 模型请求参数组装 中的format_tools_for_model(tools)做针对 Claude 的格式适配。四、启用扩展思考Extended Thinkingthinking.py 展示了 Claude 扩展思考的开启方式注意budget_tokens必须小于max_tokensagent Agent( modelClaude( idclaude-sonnet-4-6, max_tokens2048, thinking{type: enabled, budget_tokens: 1024}, ), markdownTrue, ) agent.print_response(Share a very scary 2 sentence horror story) agent.print_response(Share a very scary 2 sentence horror story, streamTrue)python cookbook/90_models/azure/claude/thinking.py从源码结构看thinking参数的处理有两层保障创建期校验父类 AnthropicClaude 的_validate_thinking_support()会检查模型是否属于不支持思考的NON_THINKING_MODELS如 Claude Haiku 3 与 Haiku 3.5 家族不支持时直接抛出带模型列表的ValueError请求期透传Azure 版 Claude 的 get_request_params 会在每次 API 调用前再次校验并把thinking字典原样放入请求参数采样参数temperature等则通过route_sampling_params_to_extra_body路由到extra_body以兼容 Anthropic Foundry 端点的参数约束。五、两种模型配置方式类实例化 vs 字符串前缀Cookbook 示例中反复出现这样的注释# String syntax alternative: # agent Agent(modelazure-foundry-claude:claude-sonnet-4-5, markdownTrue)字符串语法由 模型解析表 支持azure-foundry-claude前缀映射到agno.models.azure模块下的AzureFoundryClaude类冒号后为模型 ID。其取舍在 thinking.py 中有明确说明字符串语法适用于基础用法需要配置thinking、max_tokens等模型专属参数时应改用类实例化。六、源码层面的关键实现细节对需要定制接入的开发者以下几点值得注意均出自 Azure Claude 模型类类继承关系Claude(AnthropicClaude)直接继承 Anthropic 原生 Claude 实现仅覆盖默认值idclaude-sonnet-4-5、nameAzureFoundryClaude、providerAzureFoundry因此原生 Claude 的全部能力思考、工具、缓存等在此复用结构化输出限制__post_init__中显式将supports_native_structured_outputs与supports_json_schema_outputs覆盖为False意味着 Azure AI Foundry 端点不走原生 JSON Schema 输出路径需要结构化输出时应使用 Agno 的通用解析方案客户端管理get_client()/get_async_client()分别惰性创建AnthropicFoundry与AsyncAnthropicFoundry并做缓存复用L85-L109同时支持传入自定义http_client、max_retries、timeout、default_headers与任意client_params透传额外客户端参数azure_ad_token_provider: Callable[[], str]字段允许以回调形式提供 Azure AD token适合服务间以托管身份访问 Azure 的场景。七、注意事项与适用前提本套示例的适用前提是你已在 Azure AI Foundry 中部署了 Anthropic 模型端点并能获取 API Key或 Azure AD 令牌ANTHROPIC_FOUNDRY_BASE_URL与ANTHROPIC_FOUNDRY_RESOURCE二者提供其一即可示例代码中模型 ID 以claude-sonnet-4-6为例注释中的字符串示例使用claude-sonnet-4-5实际可用 ID 以你 Azure 资源的模型目录为准扩展思考要求模型 ID 属于支持 thinking 的 Claude 模型Agno 会在创建时做静态校验但 Azure 端点侧的模型可用性仍以平台实际开通情况为准完整的示例代码可参考 cookbook/90_models/azure/claude/basic.py、cookbook/90_models/azure/claude/tool_use.py 与 cookbook/90_models/azure/claude/thinking.py官方接入说明见 cookbook/90_models/azure/claude/README.md。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表