Agent S 多模态推理引擎接入指南:OpenAI/Anthropic/Gemini/Azure/vLLM/OpenRouter 六种 API 的配置与 LMMAgent 实战
人工智能大模型AI Agent自主智能体GUI 自动化【免费下载链接】Agent-SAgent S: an open agentic framework that uses computers like a human项目地址https://gitcode.com/GitHub_Trending/ag/Agent-S点击查看免费下载本篇技术指南以 Agent S 仓库根目录下的 models.md 为骨架系统讲解开源 GUI Agent 框架 Agent S 所支持的全部 MLLM 推理 API——OpenAI、Anthropic、Gemini、Azure OpenAI、vLLM本地模型与 Open Router——的接入方式。你将掌握两种配置路径环境变量与engine_params直接传参、AgentS2_5与底层LMMAgent的正确实例化方法并结合 mllm.py 与 engine.py 的源码理解各引擎的底层实现从而在 macOS、Linux、Windows 上自由切换推理后端。一、支持的推理引擎总览Agent S 对 MLLM多模态大语言模型推理采用统一的engine_params字典进行抽象通过engine_type字段决定底层调用哪一个推理后端。当前仓库以gui_agents.s2_5系列为例支持以下 APIengine_type对应后端官方文档环境变量源码中的引擎类openaiOpenAI 原生接口OPENAI_API_KEYLMMEngineOpenAIanthropicAnthropic ClaudeANTHROPIC_API_KEYLMMEngineAnthropicgeminiGoogle Gemini经 OpenAI 兼容端点GEMINI_API_KEY、GEMINI_ENDPOINT_URLLMMEngineGeminiazure_openai源码中为azureOpenAI on AzureAZURE_OPENAI_API_BASE/AZURE_OPENAI_ENDPOINT、AZURE_OPENAI_API_KEYLMMEngineAzureOpenAIvllm本地 vLLM 部署vLLM_ENDPOINT_URLLMMEnginevLLMopen_routerOpen Router 聚合平台OPENROUTER_API_KEY、OPEN_ROUTER_ENDPOINT_URLLMMEngineOpenRouter此外engine.py 中还实现了LMMEngineHuggingFaceHugging Face TGI 端点环境变量为HF_TOKEN与HF_ENDPOINT_URL与LMMEngineParasail环境变量为PARASAIL_API_KEY前者在 README 中被用于承载 UI-TARS 等视觉 grounding 模型的推理端点后者按需选用。二、方式一通过环境变量配置 API 密钥所有官方支持的 API 都可以通过设置对应的环境变量来启用这也是 README 中推荐的首要方式可写入 Linux 的.bashrc或 macOS 的.zshrc。1. OpenAIexport OPENAI_API_KEYYOUR_API_KEY在源码层面LMMEngineOpenAI.generate 会优先取构造时传入的api_key参数为空时回退读取OPENAI_API_KEY若两者都缺失则抛出ValueError并明确提示。它同时支持可选的base_url用于自定义网关与OPENAI_ORG_ID组织 ID。调用经由OpenAI官方 SDK 的chat.completions.create默认max_completion_tokens为 4096。2. Anthropicexport ANTHROPIC_API_KEYYOUR_API_KEYLMMEngineAnthropic 使用 Anthropic 官方 SDK。值得注意的是该引擎支持thinking模式适配 Claude 3.7 Sonnet 等推理模型构造时传入thinkingTrue或在调用LMMAgent.get_response(use_thinkingTrue)时触发generate_with_thinking此时会启用thinking{type: enabled, budget_tokens: 4096}并将思考内容包装为thoughts.../thoughts与answer.../answer返回供上层解析。3. Geminiexport GEMINI_API_KEYYOUR_API_KEY export GEMINI_ENDPOINT_URLhttps://generativelanguage.googleapis.com/v1beta/openai/Gemini 通过其官方提供的 OpenAI 兼容端点接入LMMEngineGemini 内部仍实例化OpenAI客户端。GEMINI_ENDPOINT_URL为必填项缺失时同样抛出ValueError。4. OpenAI on Azureexport AZURE_OPENAI_API_BASEDEPLOYMENT_NAME export AZURE_OPENAI_API_KEYYOUR_API_KEYLMMEngineAzureOpenAI 对 Azure 接入的完整要求是三个参数AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT对应文档中的AZURE_OPENAI_API_BASE以及api_version。其中 API 版本可从OPENAI_API_VERSION环境变量或构造参数api_version提供三者缺一不可否则分别抛出对应的ValueError。该引擎还会基于completion.usage.total_tokens累积估算调用成本self.cost。5. vLLM for Local Modelsexport vLLM_ENDPOINT_URLYOUR_DEPLOYMENT_URLvLLM 用于接入本地部署的模型服务。从源码看LMMEnginevLLM.generate 除vLLM_ENDPOINT_URL外还需要 API KeyvLLM_API_KEY环境变量或api_key参数并在请求中透传top_p默认 0.8与repetition_penalty默认 1.05经extra_body携带等采样参数。6. Open Routerexport OPENROUTER_API_KEYYOUR_API_KEY export OPEN_ROUTER_ENDPOINT_URLhttps://openrouter.ai/api/v1LMMEngineOpenRouter 同样基于 OpenAI 兼容协议两个环境变量均为必填。提示从源码确认上述所有引擎在generate()之前都会做参数优先、环境变量兜底的解析且统一装饰了backoff指数退避重试针对APIConnectionError、APIError、RateLimitError最长 60 秒保证推理过程的稳定性。三、方式二通过engine_params直接传参除了环境变量还可以在实例化 Agent 时将 API 密钥直接作为参数传入engine_params字典适合在脚本中动态配置或多租户场景from gui_agents.s2_5.agents.agent_s import AgentS2_5 engine_params { engine_type: openai, # 允许取值openai, anthropic, gemini, azure_openai, vllm, open_router model: gpt-5-2025-08-07, # 允许取值所接入 API 支持的任意视觉语言模型 } agent AgentS2_5( engine_params, grounding_agent, platformcurrent_platform, )engine_params中engine_type与model为必填项其余可选字段随引擎而异常见的有字段作用适用引擎base_url自定义 API 端点openai / gemini / vllm / open_router / huggingface / parasailapi_key直接提供密钥优先于环境变量全部temperature固定所有调用的采样温度如 o3 等模型必须固定为 1.0全部rate_limit每秒请求数上限-1 表示不限制引擎会换算为请求间隔openai / gemini / open_router / azure / vllm 等organizationOpenAI 组织 IDopenaiapi_versionAzure 的 API 版本号azurethinking是否启用 Claude 思考模式anthropic四、使用底层LMMAgent进行消息级调用AgentS2_5内部依赖的正是多模态代理LMMAgent——它用统一的接口包装了各家 LLM SDK并内置了消息历史管理、图片编码与角色推断等能力。直接使用它的代码片段如下from gui_agents.s2_5.core.mllm import LMMAgent engine_params { engine_type: openai, # 允许取值openai, anthropic, gemini, azure_openai, vllm, open_router model: gpt-5-2025-08-07, # 允许取值所接入 API 支持的任意视觉语言模型 } agent LMMAgent( engine_paramsengine_params, )LMMAgent的完整定义位于 gui_agents/s2_5/core/mllm.py。实例化时若未传入现成的engine对象它会依据engine_type在LMMEngineOpenAI / LMMEngineAnthropic / LMMEngineAzureOpenAI / LMMEnginevLLM / LMMEngineHuggingFace / LMMEngineGemini / LMMEngineOpenRouter / LMMEngineParasail之间分发无法识别的engine_type会抛出ValueError(engine_type is not supported)。一个值得注意的实现差异文档中注释的允许值写作azure_openai但 mllm.py 中实际匹配的分支键为azure因此使用 Azure 后端时请以源码为准传入azure。LMMAgent的核心能力包括消息管理reset()清空对话重新写入系统提示词、add_system_prompt()设置/更新系统提示、add_message()追加用户/助手消息、replace_message_at()与remove_message_at()编辑历史角色自动推断add_message()未显式指定role时会依据上一条消息的角色自动交替为user/assistant多模态输入image_content可传入图片路径、字节数据或numpy.ndarray也支持传入列表一次追加多张图片encode_image()会统一转成 base64 编码。OpenAI 系与 vLLM 使用image_url格式Anthropic 使用imagesource格式适配各自的协议差异图片细节控制image_detail参数默认high控制 OpenAI 系图片采样细节推理生成get_response()支持temperature默认 0.0、max_new_tokens与use_thinking启用后调用engine.generate_with_thinking返回思考内容并可传入额外**kwargs透传给底层 SDK。五、源码视角推理调用链与上下文管理为了理解engine_params如何贯穿整个 Agent 运行过程可以追踪以下调用链实例化阶段AgentS2_5在 agent_s.py 中把engine_params原样转交给WorkerWorker用其创建主决策用的generator_agent与可选的reflection_agent均为LMMAgent并读取temperature默认 0.0与模型名来判断是否需要启用use_thinking。执行阶段Worker.generate_next_action()见 worker.py先把截图与当前指令/反思内容加入generator_agent的消息历史再经call_llm_safe()见 common_utils.py发起调用——该工具函数内置最多 3 次失败重试。返回的完整响应由split_thinking_response()拆分为思考与正文两部分。上下文管理针对长上下文模型anthropic、openai、geminiflush_messages()会保留全部文本、仅保留最近max_trajectory_length默认 8张图片对非长上下文模型则直接丢弃最旧的一整轮user/assistant消息从而把轨迹长度控制在模型上下文窗口之内。在真实命令行环境中cli_app.py 展示了engine_params与 CLI 参数的一一对应关系python -m gui_agents.s2_5.cli_app \ --provider openai \ --model gpt-5-2025-08-07 \ --ground_provider huggingface \ --ground_url http://localhost:8080 \ --ground_model ui-tars-1.5-7b \ --grounding_width 1920 \ --grounding_height 1080其中--provider、--model、--model_url、--model_api_key、--model_temperature会被组装成主 Agent 的engine_params--ground_*系列参数则组装成 grounding 模型的engine_params_for_grounding用于视觉 grounding 的推理端点例如 UI-TARS-1.5-7B参见 README.md 与 grounding.py。grounding_width/grounding_height需与 grounding 模型输出的坐标分辨率一致UI-TARS-1.5-7B 用 1920×1080UI-TARS-72B 用 1000×1000。六、配置速查与注意事项优先级engine_params中显式传入的api_key/base_url优先于同名环境变量环境变量为空时的兜底逻辑由各LMMEngine的generate()统一实现。必填校验所有引擎在密钥缺失时都会抛出带指引的ValueErrorGemini、Azure、Open Router、vLLM、Hugging Face 等还要求端点 URL 必填。推理模型适配Claude 3.7 Sonnet 建议配合use_thinkingTrue使用以获得思考链o3 等要求固定temperature1.0的模型请在engine_params中显式设置。跨平台platform参数接受darwin/linux/windows它会影响 grounding Agent 中switch_applications、open等动作生成的平台代码但不影响推理引擎的选择。本地部署使用 vLLM 时需同时准备vLLM_ENDPOINT_URL与vLLM_API_KEY若希望进一步使用 Hugging Face TGI 端点如自托管 UI-TARS还需配置HF_TOKEN与HF_ENDPOINT_URL。密钥安全官方推荐通过.bashrc/.zshrc或dotenv管理密钥避免把真实密钥硬编码进脚本或提交到仓库。通过以上两种配置方式与源码级的参数说明你可以为 Agent S 灵活选择任一受支持的推理后端并在不同模型之间快速切换进行 GUI 自动化任务。赞分享人工智能大模型AI Agent自主智能体GUI 自动化【免费下载链接】Agent-SAgent S: an open agentic framework that uses computers like a human项目地址https://gitcode.com/GitHub_Trending/ag/Agent-S点击查看免费下载相关推荐超强OpenGPTs多语言模型配置Azure OpenAI与Anthropic Claude实战指南还在为AI模型选择困难而烦恼不知道如何配置Azure OpenAI还是Anthropic Claude这篇文章将为你彻底解决多语言模型配置难题 读完本文你AI 应用AI AgentRAG后端前端Swarms 多模型提供商接入实战指南从 OpenAI 到 vLLM 的 Agent 模型配置全解析Swarms 多模型提供商接入实战指南从 OpenAI 到 vLLM 的 Agent 模型配置全解析 导读 本指南围绕仓库 examples/models hAI AgentAgent 框架多智能体工具调用MCP 服务Copilot for Xcode BYOK 配置指南用自有 API Key 接入 Anthropic、OpenAI、Azure 等多模型提供商Copilot for Xcode BYOK 配置指南用自有 API Key 接入 Anthropic、OpenAI、Azure 等多模型提供商 Copilo开发工具AI 应用AI Agent上一篇BabelDOC深度解析专业PDF文档翻译解决方案与架构剖析下一篇rom-rb插件系统揭秘扩展功能与自定义开发的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →