UFO² 集成 Anthropic Claude:从 API 配置到源码级调用链实战指南

UFO² 集成 Anthropic Claude:从 API 配置到源码级调用链实战指南 UFO² 集成 Anthropic Claude从 API 配置到源码级调用链实战指南【免费下载链接】UFOUFO³: Weaving the Digital Agent Galaxy项目地址: https://gitcode.com/GitHub_Trending/uf/UFOUFO²UFO³ 系列开源项目的智能体框架支持将 Anthropic Claude 作为底层大语言模型为HOST_AGENT任务规划与APP_AGENT界面操作执行提供多模态视觉理解与推理能力。本文将基于 claude.md 官方指南结合仓库内 ClaudeService 实现、服务注册机制 与 配置模板完整讲解从申请 API Key、安装依赖、配置agents.yaml到理解调用链与成本核算的端到端实战方案。读完本文你将能够独立完成 Claude 模型的接入、验证与排错并掌握其底层运行原理。前置准备申请 API Key 与安装依赖步骤一获取 Anthropic API Key要使用 Claude API需在 Anthropic Console 注册账号并在 API Keys 区域创建并获取你的 API Key。该 Key 将作为API_KEY字段填入 UFO² 的配置文件中用于anthropic.Anthropic(api_key...)客户端初始化对应 claude.py 构造函数 中的self.client anthropic.Anthropic(api_keyself.config_llm[API_KEY])。安全提示API Key 属于敏感凭证配置完成后请勿将agents.yaml提交到版本控制仅提交agents.yaml.template模板文件。步骤二安装 Anthropic Python 依赖官方指南要求安装 Anthropic 官方 Python SDKpip install -U anthropic0.37.1需要说明的是-U参数表示强制升级到指定版本。而当前仓库的 requirements.txt 中锁定版本为anthropic0.64.0。若你的运行环境基于本仓库的依赖约束建议以requirements.txt为准执行pip install -r requirements.txt两种方式均能提供ClaudeService所需的anthropic模块。安装完成后可通过pip show anthropic确认版本。初始化配置文件从模板创建 agents.yamlconfig/ufo/agents.yaml是 UFO² 所有智能体的 LLM 配置入口对应源码注释中HOST, APP, BACKUP, EVALUATION, and OPERATOR agents。若该文件尚不存在先从模板复制Copy-Item config\ufo\agents.yaml.template config\ufo\agents.yamlLinux/macOS 环境可等价执行cp config/ufo/agents.yaml.template config/ufo/agents.yaml模板文件位于 config/ufo/agents.yaml.template其中已定义HOST_AGENT、APP_AGENT、BACKUP_AGENT、EVALUATION_AGENT以及全局OMNIPARSER、GPT 参数MAX_TOKENS、MAX_RETRY、TEMPERATURE、TOP_P、TIMEOUT等字段只需将默认的openai配置替换为 Claude 配置即可。配置 HOST_AGENT 与 APP_AGENT 使用 Claude编辑config/ufo/agents.yaml将HOST_AGENT与APP_AGENT配置为 Claude APIHOST_AGENT: VISUAL_MODE: True # 启用视觉模式理解截图 API_TYPE: claude # 使用 Claude API API_BASE: https://api.anthropic.com # Claude API 端点 API_KEY: YOUR_CLAUDE_API_KEY # 你的 Claude API Key API_MODEL: claude-3-5-sonnet-20241022 # 模型名称 API_VERSION: 2023-06-01 # API 版本 APP_AGENT: VISUAL_MODE: True API_TYPE: claude API_BASE: https://api.anthropic.com API_KEY: YOUR_CLAUDE_API_KEY API_MODEL: claude-3-5-sonnet-20241022 API_VERSION: 2023-06-01配置字段说明字段说明VISUAL_MODE设为True以启用视觉能力。Claude 3 大部分模型支持视觉输入API_TYPE必须使用小写claude源码中大小写敏感见下文API_BASEClaude API 端点https://api.anthropic.comAPI_KEY你在 Anthropic Console 获取的 API KeyAPI_MODEL模型标识符如claude-3-5-sonnet-20241022、claude-3-opus-20240229API_VERSIONAPI 版本标识符关于API_TYPE的大小写敏感从 llm_call.py 可以看出代码会先执行api_type_lower api_type.lower()再通过BaseService.get_service(api_type_lower, ...)查找服务即配置文件中的大小写差异会被归一化处理而在 ClaudeService 内部 同样执行self.api_type self.config_llm[API_TYPE].lower()。因此统一推荐直接书写小写claude。此外可以留意一个源码细节ClaudeService.__init__实际读取的字段是API_MODEL、API_KEY、API_TYPE客户端通过anthropic.Anthropic(api_key...)构造SDK 默认请求官方端点https://api.anthropic.com。也就是说API_BASE字段在此处主要用于配置文档的一致性与后续扩展实际请求仍走 Anthropic SDK 默认端点。可用的 Claude 模型官方指南给出的模型清单如下Claude 3.5 Sonnetclaude-3-5-sonnet-20241022—— 智能与速度的最佳平衡Claude 3 Opusclaude-3-opus-20240229—— 能力最强的模型Claude 3 Sonnetclaude-3-sonnet-20240229—— 均衡性能Claude 3 Haikuclaude-3-haiku-20240307—— 快速且经济实惠在实际接入时模型名称需与 Anthropic 官方最新发布保持一致。成本追踪方面仓库的 config/ufo/prices.yaml 已内置claude/claude-3-5-sonnet-20241022输入 0.0003 $/千 token、输出 0.0015 $/千 token等价格条目供 get_cost_estimator 在每次调用后估算花费对应代码中name str(claude/ model)的前缀拼接逻辑。源码级原理ClaudeService 调用链解析服务注册与分发在 ufo/llm/base.py 的service_map中注册了claude: ClaudeService。运行时llm_call.py 首先从配置系统取出对应智能体的API_TYPE与API_MODEL随后调用BaseService.get_service(...)动态导入ufo.llm.claude模块并实例化ClaudeService。最终通过service.chat_completion(messages, n)发起请求。chat_completion 与消息处理ClaudeService.chat_completion 的核心逻辑如下温度、top_p、max_tokens未显式传入时回退到全局配置TEMPERATURE、TOP_P、MAX_TOKENS来源于system.yaml的 LLM 参数区调用process_messages将 UFO² 通用消息结构转换为 Anthropic Messages API 结构role system的内容被提取为独立的system参数role user的文本与图片内容合并进user_prompt.content在for _ in range(self.max_retry)循环内调用self.client.messages.create(...)失败时记录错误堆栈、time.sleep(3)后重试每次成功返回后读取response.usage.input_tokens与output_tokens调用get_cost_estimator累计成本。视觉截图输入的实现细节UFO² 的截图以data:image/png;base64,...格式传入消息。在 process_messages 中通过正则data:(.*?);base64,(.*)拆解出media_type与base64_data转换为 Anthropic 的{type: image, source: {type: base64, media_type: ..., data: ...}}块。这正是VISUAL_MODE: True能够理解截图背后的机制只要VISUAL_MODE开启Agent 的观察中就会携带截图由 Claude 3 的多模态能力完成 UI 元素识别。备用引擎机制如果 Claude 调用失败且use_backup_engineTruellm_call.py 会记录错误并自动切换到BACKUP_AGENT配置对应agents.yaml中的BACKUP_AGENT段。因此可以在BACKUP_AGENT中配置另一家厂商的模型如 OpenAI实现主备双通道的可用性保障。全局 LLM 参数对 Claude 行为的影响config/ufo/system.yaml 中的 LLM 参数区对所有模型生效包括 ClaudeMAX_TOKENS: 2000 # 响应最大 token 数 MAX_RETRY: 20 # API 请求最大重试次数 TEMPERATURE: 0.0 # 越低输出越稳定一致 TOP_P: 0.0 # 越低输出越保守 TIMEOUT: 60 # 调用超时秒这些值会经 base.py 的 configs_dict 组装 传入ClaudeService并作为chat_completion的默认参数。其中TEMPERATURE与MAX_TOKENS直接决定 Claude 输出风格与长度MAX_RETRY决定失败重试次数上限。注意agents.yaml.template中同样存在一份 GPT 参数MAX_TOKENS: 2000、MAX_RETRY: 3两份文件以当前配置加载链路实际生效值为准旧版agents.yaml全局段用于兼容新版由system.yaml提供。多智能体混用与成本优化UFO² 允许不同智能体使用不同模型。你可以用 Claude 做规划、用其他厂商模型做高频执行也可以反过来# 规划阶段使用 Claude HOST_AGENT: API_TYPE: claude API_MODEL: claude-3-5-sonnet-20241022 API_KEY: YOUR_CLAUDE_API_KEY # 评估阶段也使用 Claude低频调用节省预算 EVALUATION_AGENT: API_TYPE: claude API_MODEL: claude-3-5-sonnet-20241022 API_KEY: YOUR_CLAUDE_API_KEY由于APP_AGENT在每次界面操作时都会触发调用调用频率最高从成本角度通常建议将高频执行智能体配置为更经济的模型而把 Claude 留给规划与评估等低频高价值场景。也可将BACKUP_AGENT指向 Claude作为主链路失败时的回退模型。验证配置是否生效配置完成后可用以下 Python 片段快速验证配置加载链路from config.config_loader import get_ufo_config config get_ufo_config() print(fHOST_AGENT model: {config.host_agent.api_model}) print(fHOST_AGENT api_type: {config.host_agent.api_type}) print(fAPP_AGENT model: {config.app_agent.api_model})若输出中api_type为claude、模型名为claude-3-5-sonnet-20241022说明配置已被正确加载配置访问支持属性式与字典式两种方式参见 ufo/llm/config_helper.py 的AgentConfigAccessor兼容层。启动 UFO² 运行首个任务配置就绪后即可启动 UFO² 使用 Claude 运行任务。详细的上手流程包括 Windows 环境启动命令、任务输入方式、日志查看请参考 快速入门指南。首次运行建议从简单任务开始例如在记事本中新建并保存一份文档观察 HOST_AGENT 的规划输出与 APP_AGENT 的 UI 操作是否符合预期。常见问题排查认证失败Invalid API Key核对API_KEY是否复制完整注意不要有多余空格或引号确认API_TYPE为小写claude若 Key 刚创建等待数分钟使其生效。模型不存在Model Not Found核对API_MODEL名称与 Anthropic 官方当前提供的模型 ID 完全一致含日期后缀确认你的账号对该模型有访问权限检查是否误将模型别名如claude-3-5-sonnet与完整 IDclaude-3-5-sonnet-20241022混用。调用失败并回退到备用引擎查看日志中的错误堆栈Error when making API request确认是网络、配额还是参数问题检查MAX_RETRY与TIMEOUT是否合理确认BACKUP_AGENT已正确配置否则回退同样会失败。视觉能力未生效确认VISUAL_MODE: True确认所选模型支持视觉输入Claude 3 各变体均支持确认截图能正常生成检查INCLUDE_LAST_SCREENSHOT等日志配置。进一步阅读Agent 配置完整参考全部智能体的字段、API_TYPE 选项与完整配置示例模型配置总览对比不同 LLM 提供方OpenAI、Gemini、Qwen、Ollama 等的视觉支持与认证方式配置加载器实现 与 ClaudeService 源码深入理解配置读取与调用链路价格配置查看已内置的 Claude 价格条目与成本核算方式UFO² 快速入门完成配置后的首次运行指引【免费下载链接】UFOUFO³: Weaving the Digital Agent Galaxy项目地址: https://gitcode.com/GitHub_Trending/uf/UFO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考