技术详解:Agnes AI 全模态大模型平台与多模态 API 实践指南

📅 2026/6/29 16:40:31
技术详解:Agnes AI 全模态大模型平台与多模态 API 实践指南
说明Agnes AIagnes-ai.com是由 Sapiens AI 推出的全模态大模型平台非阿里内部项目但与国内大模型生态深度兼容 OpenAI 协议2026年6月起免费开放Agnes-2.0-Flash文本/Agent、Agnes-Image-2.1-Flash图像、Agnes-Video-V2.0视频​ 三大核心模型 API完全兼容 OpenAI SDK适合快速构建多模态 Agent 与内容生成流水线。一、Agnes AI 平台与模型矩阵Agnes AI 定位为全模态一站式 API核心卖点是同一套 Key 同一套 OpenAI 兼容协议​ 即可调用文本、图像、视频三种能力且 Agent 文本模型原生支持 Function Calling / Tool Use / 1M Token 上下文。模型标识模态核心能力典型用途agnes-2.0-flash/agnes-2.0-flash-thinking文本1M 上下文、Tool Use、结构化输出、代码生成Agent 规划、RAG、代码助手、多轮对话agnes-image-2.1-flash图像文生图、图改图Img2Img、局部编辑、多图融合电商海报、人物风格转换、信息图agnes-video-v2.0视频文生视频(T2V)、首帧/首尾帧生视频、音画同步广告素材、分镜预演、短视频API Base URLhttps://apihub.agnes-ai.com/v1获取 Key登录 https://platform.agnes-ai.com→ Settings → Create API Key免费策略免费层有 RPM/QPD 限额商用可申请 Token Plan 提额二、环境准备# Python pip install openai requests # 设置环境变量推荐 export AGNES_API_KEYsk-xxxxxx export AGNES_BASE_URLhttps://apihub.agnes-ai.com/v1Java 侧使用标准OkHttpJackson或直接引入spring-ai-openai-spring-boot-starter并覆写base-url。三、Python 实践示例3.1 文本对话 多轮Agent 基座# -*- coding: utf-8 -*- from openai import OpenAI import os client OpenAI( api_keyos.getenv(AGNES_API_KEY), base_urlos.getenv(AGNES_BASE_URL) ) # ---- 单轮 ---- resp client.chat.completions.create( modelagnes-2.0-flash, messages[ {role: system, content: 你是一名资深后端架构师}, {role: user, content: 用Python写一个带重试机制的HTTP请求工具类含超时与指数退避} ] ) print(resp.choices[0].message.content) # ---- 多轮对话 ---- messages [ {role: system, content: 你是数据分析助手}, {role: user, content: 帮我分析2025年Q1~Q4的销售额趋势假设数据是[120,145,130,180]万元} ] resp client.chat.completions.create(modelagnes-2.0-flash, messagesmessages) reply resp.choices[0].message.content print(reply) messages.append({role: assistant, content: reply}) messages.append({role: user, content: 给出环比增长率并推荐下一步行动}) resp2 client.chat.completions.create(modelagnes-2.0-flash, messagesmessages) print(resp2.choices[0].message.content)3.2 Function Calling工具调用 / Agent 核心tools [ { type: function, function: { name: get_weather, description: 获取指定城市的当前天气, parameters: { type: object, properties: { city: {type: string, description: 城市名如广州} }, required: [city] } } } ] messages [{role: user, content: 广州今天天气怎么样适合户外拍摄吗}] resp client.chat.completions.create( modelagnes-2.0-flash, messagesmessages, toolstools, tool_choiceauto ) msg resp.choices[0].message # 模拟执行工具 if msg.tool_calls: call msg.tool_calls[0] print(f→ 调用工具: {call.function.name}, 参数: {call.function.arguments}) # 这里实际应查天气 API此处模拟返回 weather_result 晴28°C微风 messages.append({role: assistant, content: None, tool_calls: msg.tool_calls}) messages.append({ role: tool, tool_call_id: call.id, content: weather_result }) final client.chat.completions.create(modelagnes-2.0-flash, messagesmessages) print(Agent 回复:, final.choices[0].message.content) else: print(msg.content)3.3 文生图 图改图Image# 文生图 img_resp client.images.generate( modelagnes-image-2.1-flash, prompt赛博朋克风格的未来城市夜景霓虹灯飞行汽车超广角电影感, size1024x576, n1, response_formaturl ) print(图片URL:, img_resp.data[0].url) # 图改图Img2Img—— 通过 extra_body 传原图 img_edit client.images.generate( modelagnes-image-2.0-flash, # 2.0 版支持 img2img prompt把这张照片改成梵高油画风格保留主体轮廓, size1024x1024, extra_body{ tags: [img2img], image: [https://your-cdn.com/source.jpg], # 公网可访问URL response_format: url } ) print(编辑后URL:, img_edit.data[0].url)3.4 文生视频异步任务模式Agnes-Video 使用异步任务接口需先提交再轮询import requests import time import os API_KEY os.getenv(AGNES_API_KEY) BASE https://apihub.agnes-ai.com/v1 headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } # 提交任务 submit requests.post( f{BASE}/videos, headersheaders, json{ model: agnes-video-v2.0, prompt: 夕阳下金毛犬在沙滩上追逐飞盘慢动作电影感, width: 1280, height: 720, num_frames: 121, # ~5秒 24fps frame_rate: 24 } ) submit.raise_for_status() task_id submit.json()[id] print(fTask submitted: {task_id}) # 轮询 while True: res requests.get(f{BASE}/videos/{task_id}, headersheaders) data res.json() status data.get(status) or data.get(task_status) if status in (succeeded, SUCCEEDED): print(Video URL:, data.get(video_url) or data[output][video_url]) break elif status in (failed, FAILED): raise RuntimeError(fVideo gen failed: {data}) time.sleep(5)四、Java 调用示例HTTP 方式以最常用的文本对话​ 和文生图​ 为例使用 OkHttp Jackson。Maven 依赖dependency groupIdcom.squareup.okhttp3/groupId artifactIdokhttp/artifactId version4.12.0/version /dependency dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version2.17.0/version /dependencyJava 示例——Chat Completionspackage com.example.agnes; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import okhttp3.*; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; public class AgnesClient { private static final String API_KEY System.getenv(AGNES_API_KEY); private static final String BASE_URL https://apihub.agnes-ai.com/v1/chat/completions; private static final OkHttpClient client new OkHttpClient(); private static final ObjectMapper mapper new ObjectMapper(); public static String chat(String userMsg) throws IOException { MapString, Object msg Map.of(role, user, content, userMsg); MapString, Object body Map.of( model, agnes-2.0-flash, messages, new Object[]{msg} ); String json mapper.writeValueAsString(body); Request req new Request.Builder() .url(BASE_URL) .addHeader(Authorization, Bearer API_KEY) .post(RequestBody.create(json, MediaType.parse(application/json))) .build(); try (Response resp client.newCall(req).execute()) { JsonNode root mapper.readTree(resp.body().string()); return root.get(choices).get(0).get(message).get(content).asText(); } } public static void main(String[] args) throws Exception { System.out.println(chat(用一句话介绍 Agnes AI 平台)); } }Java 示例——文生图public static String generateImage(String prompt) throws IOException { MapString, Object body Map.of( model, agnes-image-2.1-flash, prompt, prompt, size, 1024x576, n, 1, response_format, url ); Request req new Request.Builder() .url(https://apihub.agnes-ai.com/v1/images/generations) .addHeader(Authorization, Bearer API_KEY) .post(RequestBody.create( mapper.writeValueAsString(body), MediaType.parse(application/json))) .build(); try (Response resp client.newCall(req).execute()) { JsonNode root mapper.readTree(resp.body().string()); return root.get(data).get(0).get(url).asText(); } }五、Agent 多模态组合实战思路Agnes AI 的优势在于同一套 Key 串联三种模态典型 Agent 工作流规划层agnes-2.0-flash Function Calling→ 解析用户意图判断是否需生图/生视频创作层​ → 调用 Image API 生成角色参考图 / 场景概念图叙事层​ → 调用 Video API 基于文案参考图生成短片或配合外部剪辑拼接汇报层agnes-2.0-flash→ 汇总结果、生成文案说明这种LLM 规划 多模态执行的 Pattern 非常适合做短视频自动生产 Agent、电商素材批量生成流水线。六、注意事项视频接口是异步的务必轮询或配置 Webhook不要同步等待图片 Img2Img​ 需通过extra_body.image传公网 HTTPS URL免费限额有 RPM每分钟请求数和日调用量限制生产环境建议申请付费 Token Plan兼容 OpenAI 协议存量 LangChain / LlamaIndex / Spring AI 代码只需改base_urlapi_key