agent-sdk-go 是一个面向 Go 开发者的开源 SDK,用于构建具备持久化执行能力的 AI 智能体。其目标场景是让智能体的运行状态、工具调用和执行循环在进程崩溃或重启后依然可恢复,实现“从上次中断处继续”,减少工作丢失或审批遗漏。
主要能力包括:
- 持久化执行:在任意运行时上实现崩溃恢复的运行;重启后可重新连接活动运行并恢复事件流。
- 分布式执行:使用 Temporal 时可将客户端触发与 worker 执行解耦、跨进程运行;使用 Restate 时可通过注册端点部署进行扩展。
- LLM 提供商:支持 OpenAI、Anthropic、Gemini、DeepSeek、Ollama(本地),也可通过 interfaces.LLMClient 接口接入自定义提供商。
- 工具与 MCP:提供内置和自定义工具;支持通过 stdio 或可流式 HTTP 连接 MCP 服务器。
- A2A:可将智能体暴露为 A2A 服务器,或将远程 A2A 智能体作为工具连接。
- 子智能体:可委派给拥有独立 LLM、工具和任务队列的专家智能体。
- 人工介入审批:可对工具调用、MCP 调用和委派进行门控。
- 会话历史:通过内存或 Redis 后端支持多轮会话。
- 记忆与 RAG:提供长期作用域记忆和检索增强生成。
- 流式输出与 AG-UI:支持部分 token 流式输出;提供用于前端集成的 AG-UI 协议。
- 推理能力:在 Anthropic、Gemini、DeepSeek 和 OpenAI 推理模型上支持扩展思考。
- Token 用量:按运行聚合提示、补全和推理的 token 计数。
- 预算控制:限制每次运行的 token 花费;达到上限时可停止执行或要求人工介入审批。
- 生命周期钩子:在 LLM、工具、检索和记忆生命周期节点提供中间件。
- 错误控制:分类失败后的备用 LLM、额外一次迭代授权、按工具熔断器。
- 执行配置:通过 With*ExecutionConfig 为每个操作设置超时和最大尝试次数。
- 可观测性:提供 OpenTelemetry 追踪、指标和结构化日志。
使用方式方面,项目要求 Go 1.26+。智能体默认即具备持久性,无需基础设施。只有需要分布式、多进程执行时,才需添加 Temporal 或 Restate 服务器。运行模式包括:进程内运行(零配置)、Temporal(分布式执行,导入 pkg/agent/runtime/temporal)、Restate(持久化执行,导入 pkg/agent/runtime/restate,与 Temporal 互斥)。项目还提供 agctl 命令行工具,可从 GitHub Releases 下载二进制并放入 PATH。
适用场景包括需要崩溃恢复的智能体任务、跨进程的分布式智能体执行、带人工审批的工作流、需要长时记忆与 RAG 的对话式智能体,以及需要可观测性和预算控制的 LLM 应用。
限制方面:官方资料未提供完整的限制说明。已知注意事项包括:本地运行时不支持 WithOffset(n>0),只能从头重放,且已完成步骤按步骤粒度合并为单条消息,而非原始逐 token 流;Temporal 与 Restate 运行时的导入是互斥的。项目以 Apache License 2.0 协议按“原样”提供,构建执行真实世界操作的 AI 智能体时应确保具备适当的安全防护、验证和人工介入审批流程,部署者需自行负责合规、访问控制与操作安全。