跳转到主要内容
VeADK Java 复用 ADK Java 的工具体系,并补充了火山引擎常用的内置工具和 Toolset。你可以把普通 Java 函数、Web 检索、网页读取、MCP Router、Skills、Skills Sandbox、Code Sandbox 等能力挂到同一个 Agent 上,由模型在运行时选择调用。

接入入口

工具通常通过 Agent.builder().tools(...) 传入。可以混用 BaseTool、Toolset 和 ADK Java 的 FunctionTool。
当 Agent 使用 MCP 或远端 Toolset 时,建议在任务结束后调用 agent.close().blockingAwait(),让底层会话和连接按预期释放。

内置工具速览

Web Search 和 Web Fetch

WebSearchTool 适合单次搜索,ParallelWebSearchTool 适合把一个问题拆成多个查询并发执行。WebFetchTool 负责读取明确 URL 的正文内容,可以处理公开 HTML 和 PDF。
web_fetch 的参数包括 url、extract_mode 和 max_chars。extract_mode 默认为 markdown,也可以使用 text。工具会限制私网、回环地址、保留地址、重定向跳数和响应大小,适合读取公开资料,不适合访问需要登录的后台页面。

MCP Router

如果工具已经由平台统一注册到 MCP Router,可以直接把 Router 暴露为一个 Toolset。默认构造会读取环境变量,也可以显式传入 URL、API Key 和允许调用的工具名。
当不传参数时,McpRouterToolset.create() 会读取 TOOL_MCP_ROUTER_URL 和可选的 TOOL_MCP_ROUTER_API_KEY。如果配置了 API Key,客户端会为请求附加 Bearer 鉴权。

Skills

Skills 有两种常见接法。第一种是把 Skill Source 暴露成普通工具,让模型像调用其他工具一样调用技能。
第二种是通过 Skills Sandbox 执行远端技能任务。同步场景使用 ExecuteSkillsTool,它会把 workflow_prompt 交给远端技能空间处理并等待结果。
异步场景可以组合 InvokeSkillTool 和 PollSkillTool。模型先调用 invoke_skill 创建远端任务,再使用 poll_skill 根据 task_id 查询执行状态,适合耗时较长的审批、检索、生成类流程。

Code Sandbox

RunCodeTool 让模型在 AgentKit Code Sandbox 中执行代码,适合数据处理、临时代码验证和产物生成。工具参数包括 code、language 和可选的 timeout。
如果你已经有 Code Sandbox MCP 服务,可以通过 CodeSandboxToolset 接入。
如果业务代码需要直接管理远端沙箱会话,可以使用 SandboxClient。路径都以远端 /workspace 为根,客户端会拒绝路径穿越和不安全的绝对路径。

常用环境变量

自动工具

当 Agent 配置了知识库或长期记忆时,VeADK Java 会自动补充对应检索工具,例如 loadKnowledgebase 和 loadMemory。当使用本地 Skills 且没有显式传入 SkillToolset 时,框架也会根据 Skills 配置准备对应工具。对于 skills_sandbox 模式,需要显式传入 ExecuteSkillsTool。

安全建议

工具让模型具备访问外部系统、执行代码或触发业务流程的能力,建议按最小权限配置凭据和允许调用的工具名。对于会产生写入、审批、付款、删除、发布、通知等副作用的工具,应在业务层增加确认、审计和幂等保护。Code Sandbox 与 Skills Sandbox 适合隔离执行,但仍应限制输入文件、超时时间、网络权限和可读取的密钥范围。
最后修改于 2026年10月20日