SuperAPI AI 工具集

agent-sdk-go

agent-sdk-go 是一个用 Go 语言构建持久化 AI 智能体的开源 SDK。它的核心特点是让智能体的状态、工具调用和执行循环在进程崩溃后仍能恢复,从而“从上次中断的地方继续”。默认在进程内运行,无需额外基础设施即可获得崩溃恢复能力;需要分布式、多进程执行时,可切换到 Temporal 或 Restate。SDK 的每个核心组件都是可插拔接口,避免厂商锁定。它支持 OpenAI、Anthropic、Gemini、DeepSeek、Ollama 等 LLM 提供商,支持内置与自定义工具、MCP 服务器、A2A 协议、子智能体、人工审批、多轮会话历史、记忆与 RAG、流式输出与 AG-UI、扩展推理、Token 用量统计、预算控制、生命周期钩子、错误控制、执行配置、分布式执行和 OpenTelemetry 可观测性。要求 Go 1.26+,采用 Apache License 2.0 开源。该项目是独立社区库,与 Temporal Technologies 或 Restate 无关联。

访问官网

工具介绍

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 智能体时应确保具备适当的安全防护、验证和人工介入审批流程,部署者需自行负责合规、访问控制与操作安全。