跳转到主要内容
VeADK Java 的主要入口是 com.volcengine.veadk.Agent.builder()。它在 ADK Java 的 LlmAgent 基础上补充 VeADK 风格的模型默认值、metadata、工具、技能、记忆、知识库和运行时集成。

最小智能体

Agent.builder() 默认会设置一个可用的 Agent 名称、说明、系统指令和模型名,因此最小代码可以只调用 build()。实际项目建议显式设置 name、instruction 和模型配置,避免环境差异导致行为变化。 模型字符串有三种入口:
  • modelName("..."):语义化入口,内部等价于设置模型名。
  • model("..."):继承自 ADK Java 的模型名入口。
  • model(BaseLlm):直接传入已经配置好的模型对象。
构建完成后,既可以使用 new Runner(agent).run(...) 直接调用,也可以接入 ADK Web 或 AgentKit Runtime。结束使用时,如果模型或工具持有连接资源,建议调用 agent.close().blockingAwait() 释放资源。

模型选择

如果没有显式设置 modelProvider(...),VeADK Java 会按模型名前缀判断 provider。支持的前缀包括 ark/、openai/、openai-compatible/ 和 openai_compatible/。没有前缀时,默认按 OpenAI-compatible 协议创建模型客户端。 OpenAI-compatible 示例:
Ark 示例:
也可以把 provider 写进模型名:
modelBaseUrl(...) 是 modelApiBase(...) 的别名,常用于 OpenAI-compatible endpoint;Ark 场景通常使用 modelApiBase(...)。

显式模型对象

当需要设置 Ark 协议细节、复用模型实例,或接入自定义 BaseLlm 时,可以先创建模型对象,再传给 Agent。
显式模型适合放在统一的配置工厂中管理。注意不要把 API key 写进源码或文档示例中的固定字符串。

Responses API 和结构化输出

默认 Ark 适配器使用 Chat Completions。需要响应续接、JSON Schema 输出或 Responses 协议能力时,显式选择 ArkLlmConfig.Api.RESPONSES,并注册 ArkResponsesSession 的两个模型回调。
注册回调后,Responses 的响应 ID 会按会话和 Agent 名称写入 ADK Session State。只有当历史前缀、模型、系统指令、工具声明和生成配置匹配时,下一次调用才会携带 previous_response_id 续接;历史压缩、配置变化或远端响应过期时会回退到完整历史请求。

模型降级

modelFallbacks(...) 可以为同一个 Agent 配置多个备用模型端点。每次生成都从主模型开始,只有在尚未收到任何模型响应前发生异常,才会尝试下一个模型。
降级不会自动重放已经开始输出的响应,也不会自动重试工具调用。备用模型需要支持相同的输入格式、工具调用方式和输出约束。

Metadata

VeADK Java 会在构建时记录模型、工具、组件和搜索来源等 metadata。可以用 AgentMetadataExtractor 获取快照,供运行时注册、调试或文档化使用。
显式传入的工具会标记为 explicit;由知识库、长期记忆、Skills 等组件自动注入的工具会标记为 auto。

环境变量

显式配置的 modelApiKey(...)、ArkLlmConfig.apiKey(...) 或 OpenAiCompatibleLlmConfig.apiKey(...) 优先级最高。生产环境应通过 Secret Manager、CI/CD secret 或运行时环境变量注入凭证。

常见问题

最后修改于 2026年10月20日