跳转到主要内容
VeADK Go 可以通过 apps/agentkit_server_app 把一个智能体封装成 HTTP 服务。该服务组合了 Simple API、A2A、ADK REST 和可选 WebUI,适合本地联调、部署到 AgentKit Runtime,或嵌入到已有 Go 服务中。
部署到公网或云上运行环境前,应确认模型、工具、知识库、记忆、观测平台和 AgentKit 凭证都通过环境变量或 Secret 注入。不要把 API Key、AK/SK、Token 或私有 endpoint 写入镜像和代码仓。

前提条件

  • 使用 github.com/volcengine/veadk-go 模块。
  • 已配置模型凭证,例如火山方舟或 OpenAI-compatible 模型所需的 API Key。
  • 如果启用工具、知识库、记忆或可观测导出,相关外部服务在部署环境中可访问。
  • 如果需要 A2A Agent Card,已明确外部可访问的 PublicURL 或可信反向代理策略。

最小服务

下面示例创建一个智能体,并通过 AgentKit Server App 在本地 8000 端口启动服务。
启动后,默认 ApiConfig 会暴露 Simple API、A2A、ADK REST 和 WebUI 相关路由。SetHost("127.0.0.1") 只监听本机;部署到容器时通常使用默认空 host 或显式设置为平台要求的监听地址。

调用和验证

Simple API 启用时,可以用 /invoke 验证服务是否能完成一次智能体调用:
健康检查路径为 /health:
如果设置了 ApiPathPrefix,ADK REST 路由会挂到对应前缀下:

配置 RunConfig

apps.RunConfig 把智能体、会话、记忆、artifact、插件和 telemetry 交给 App 服务。 生产环境通常需要把 SessionService 从内存实现替换成持久化后端,避免重启后丢失会话。

配置 HTTP 服务

apps.ApiConfig 控制监听地址、路径、超时、CORS、请求体大小和 A2A 对外 URL。
如果允许浏览器跨域调用服务,不要把 AllowedOrigins 简单设置为任意来源。需要携带凭证时,更应固定可信域名。

配置 A2A 对外地址

Agent Card 需要向客户端展示可访问的 A2A 地址。服务默认不会信任请求头里的 Host、Forwarded 或 X-Forwarded-*,因此生产环境应显式设置 PublicURL。
只有在可信反向代理会覆盖客户端传入的 forwarding headers 时,才使用 ForwardedAgentCardURL:

扩展路由和中间件

AgentkitServerApp 支持在内置精确路由之后、ADK REST/WebUI fallback 路由之前添加自定义路由,也支持按声明顺序安装 middleware。

接入可观测

apps.Run 默认会追加 observability.NewPlugin() 和 observability.ADKTelemetryOptions(),并在收到 SIGTERM 后执行有界关闭。部署环境只需要配置导出器:
如需完全自行管理 OpenTelemetry provider,设置:

生产建议

最后修改于 2026年10月20日