统一模型抽象
统一接入对话、图片、视频、Embedding、Rerank 与语音模型。
Java AI Agent Framework
不只文本对话,更把图片、音频、视频模型,以及知识、工具、技能与多智能体协同,组织成真正能够完成任务的系统,并提供面向生产环境的路由、重试与可观测能力。
ChatModel model = OpenAIChatConfig.builder()
.model("Qwen3-32B")
.apiKey(System.getenv("API_KEY"))
.buildModel();
String answer = model.chat(
"分析这份产品需求"
);
Interactive Capability Map
不把 AI 应用拆成孤立功能点,而是按真实开发流程组织:接入模型,连接工具与知识,再完成 Agent 编排和生产可观测。
统一接入对话、图片、视频、Embedding、Rerank 与语音模型。
连接 Java 方法、MCP、Skills 与 Subagent,组织复杂任务流程。
覆盖文档处理、向量检索、重排、WebSearch 与层级知识导航。
提供路由、重试熔断、调用链追踪、指标采集与自动配置。
Skills / Sandbox
操作说明、脚本、参考资料和模板组成可复用的 Skill。统一的 SkillRuntime 接管命令与文件能力,让同一套 Skill 可以在本机开发,也可以进入远程隔离环境运行。
阅读 Skills 与 Sandbox 指南说明 · 脚本 · 参考 · 模板
选中后再读取完整 Skill,脚本和素材不挤占初始上下文。
命令与文件工具共享同一个 Runtime,执行不会意外越界。
生成文件可下载到本地,也可发布为用户可访问的 URL。
Multimodal Generation
通过稳定的 Java 接口屏蔽不同服务商的请求与响应差异,让内容生成、实时语音交互和异步视频任务自然接入现有业务系统。
Development Flow
按场景配置 ChatModel、ImageModel、语音模型或 VideoModel。
用注解或 Builder 将 Java 业务方法变成 Agent 可调用工具。
组合 RAG、WebSearch、LLM Wiki,为回答提供外部上下文。
用 ReAct、Routing、Subagent 处理多步骤和多角色任务。
接入路由、重试、熔断和 OpenTelemetry,稳定运行。
Use Cases
Agents-Flex 更偏向“可集成、可扩展、可上线”的 Java 框架,而不是只能演示单轮对话的样例工程。
Quick Start
Agents-Flex 不要求你重写现有应用结构。你可以先从一个 ChatModel 开始,再按业务需要接入图片、语音、视频、工具和知识库。
ChatModel model = OpenAIChatConfig.builder()
.endpoint("https://ai.gitee.com")
.provider("GiteeAI")
.model("Qwen3-32B")
.apiKey(System.getenv("GITEE_API_KEY"))
.buildModel();
String answer = model.chat("介绍一下 Agents-Flex");
System.out.println(answer);Multimodal Examples
以下代码展示每类能力的核心调用路径。服务商依赖、鉴权参数和完整异常处理请进入对应文档查看。
OpenAIImageModelConfig config = new OpenAIImageModelConfig();
config.setApiKey(System.getenv("OPENAI_API_KEY"));
ImageModel model = new OpenAIImageModel(config);
GenerateImageRequest request = new GenerateImageRequest();
request.setPrompt("雨后的未来城市,电影感光影");
request.setSize(1024, 1024);
ImageResponse response = model.generate(request);
response.getImages().get(0)
.writeToFile(new File("output/city.png"));AliyunTextToSpeechConfig config = new AliyunTextToSpeechConfig();
config.setAppKey(System.getenv("ALIYUN_APP_KEY"));
config.setAccessKeyId(System.getenv("ALIYUN_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIYUN_ACCESS_KEY_SECRET"));
TextToSpeechModel model = new AliyunTextToSpeechModel(config);
TextToSpeechRequest request = new TextToSpeechRequest(
"欢迎使用 Agents-Flex 多模态能力"
);
TextToSpeechResponse response = model.tts(request);
response.writeTo(new File("output/reply.mp3"));AliyunSpeechToTextConfig config = new AliyunSpeechToTextConfig();
config.setAppKey(System.getenv("ALIYUN_APP_KEY"));
config.setAccessKeyId(System.getenv("ALIYUN_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIYUN_ACCESS_KEY_SECRET"));
SpeechToTextModel model = new AliyunSpeechToTextModel(config);
SpeechToTextRequest request = new SpeechToTextRequest();
request.setAudioFile(new File("meeting.mp3"));
SpeechToTextResponse response = model.stt(request);
System.out.println(response.getResult());AliyunWanVideoModelConfig config = new AliyunWanVideoModelConfig();
config.setApiKey(System.getenv("DASHSCOPE_API_KEY"));
AliyunWanVideoModel model = new AliyunWanVideoModel(config);
GenerateVideoRequest request = new GenerateVideoRequest();
request.setPrompt("纸飞机飞过日出时的未来城市");
request.setSize(1280, 720);
request.setDuration(5);
VideoResponse response = model.generateAndWait(request);
response.getVideo().writeToFile(
new File("output/city.mp4")
);JAVA AI ECOSYSTEM / 2026
从模型接入到隔离执行,每个模块保持清晰边界,并通过一致的 Java 接口组合成完整应用。