InfoQ

Google's Genkit Ships Agents API with Detached Turns and Human-in-the-Loop for TypeScript and Go

6.9内容质量
Google's Genkit Ships Agents API with Detached Turns and Human-in-the-Loop for TypeScript and Go

TL;DR · AI 摘要

Google's Genkit Ships Agents API with Detached Turns and Human-in-the-Loop for TypeScript and Go - InfoQ InfoQ Homepage...

核心要点

  • 主题聚焦:Google's Genkit Ships Agents API with Detached T
  • 来源:InfoQ,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#后端#云计算
打开原文

Google 的 Genkit 发布支持分离式回合和人工介入的 Agents API,适用于 TypeScript 和 Go - InfoQ

InfoQ 首页 News Google 的 Genkit 发布支持分离式回合和人工介入的 Agents API,适用于 TypeScript 和 Go

QCon 旧金山(11 月 16-20 日):深入的技术会议。改变你思维方式的同行对话。

Google 的 Genkit 发布支持分离式回合和人工介入的 Agents API,适用于 TypeScript 和 Go

2026 年 7 月 14 日 4 分钟阅读

作者:

  • Steef-Jan Wiggers

#### 关注我们

YouTube

232K 粉丝

LinkedIn

26K 粉丝

Instagram

RSS

19K 读者

X

57.1k 粉丝

Facebook

21K 喜欢

Bluesky

收听本文 -

0:00

音频准备播放

您的浏览器不支持音频元素。

正常

1.25x

1.5x

喜欢

新下拉阅读列表

  • 阅读列表

Google 最近发布了 Genkit 的 Agents API 预览版,这是其用于构建全栈 AI 应用程序的开源框架。该 API 通过单一的 chat() 接口封装了消息历史、工具执行循环、流式传输、状态持久化和前端协议,无论代理是在进程中运行还是通过 HTTP 端点运行,接口行为完全一致。该预览版今天已提供给 TypeScript 和 Go 使用,Python 和 Dart 的支持计划中。

设计原则是通过单一抽象实现可扩展性,无需替换底层原语。相同的代理对象可以处理单次回复、流式多回合对话、等待人工批准的暂停工具调用,以及分离的长期运行任务。随着功能从简单聊天机器人扩展到多代理工作流,团队无需切换到不同框架组件。

Genkit 将大多数框架混淆的两种代理数据类型进行了分离。自定义状态是驱动下一次回合的类型化应用数据:工作流状态、任务列表或选定实体。工件是用户可独立查看、下载或版本管理的生成输出:报告、代码补丁或旅行行程。工具通过活动会话更新其中任意一种,Genkit 会实时将更改流式传输给客户端。

状态持久化遵循两条路径。配置会话存储后,代理由服务器管理:消息、自定义状态和工件以快照形式持久化,客户端可通过会话 ID 重新连接。Genkit 提供了 Firestore(生产多实例)、内存(开发环境)和基于文件(本地测试)的存储实现,并支持自定义实现的插件接口。未配置存储时,代理由客户端管理:服务器返回完整状态,客户端在每次回合中将其发送回服务器。

AI 工程师 Ebenezer Don 强调了这一架构选择的合规性维度:

在决定为 AI 代理添加内存时,保持可靠的上下文是主要挑战。

关于客户端管理状态,Don 特别指出服务器管理方法无法提供的数据驻留角度:

这种方法非常适合临时会话或对数据驻留有严格限制的应用程序,服务器不应持久化用户数据。权衡是随着对话增长,网络负载会增加。

在竞争激烈的代理框架领域中,有两个能力尤为突出。

分离式回合允许客户端启动代理任务后断开连接,并在稍后轮询结果。此外,代理会在服务器端继续工作,将进度写入任何客户端均可读取的快照中:

code
const chat = reportAgent.chat({ sessionId: 'report-123' });
const task = await chat.detach('Write the quarterly market report.');

savePendingSnapshot(task.snapshotId);

for await (const snapshot of task.poll({ intervalMs: 1000 })) {
  renderStatus(snapshot.status);
  if (snapshot.status === 'completed') renderMessages(snapshot.state.messages);
}

通过分离运行(detached runs),开发者可以在不使用 WebSocket、独立任务队列或保持连接开放的情况下,创建长期研究任务、多步骤规划和以工具为主的实用工作流。

可中断工具的另一个能力是提供带防伪造保护的人机协作控制。当工具被标记为可中断时,代理会在执行中途暂停,将待处理操作返回给客户端,仅在用户批准或拒绝后才会恢复。运行时会将恢复负载与会话历史进行验证,防止工具被伪造输入欺骗执行。在 Go 中:

code
runShell := genkitx.DefineInterruptibleTool(g, "run_shell",

  "在安全检查后运行一个 shell 命令。",

  func(ctx context.Context, input ShellInput, confirm *Confirmation) (ShellOutput, error) {
    if isRisky(input.Command) {
      if confirm == nil {
        return ShellOutput{}, tool.Interrupt(ShellInterrupt{
          Command: input.Command, Reason: "该命令可以修改文件。",
        })
      } else if !confirm.Approved {
        return ShellOutput{}, errors.New("用户拒绝执行 shell 命令")
      }
    }
    return execute(input.Command)
  },
)

对于多代理编排,Genkit 的中间件系统(5 月发布)为每个子代理注入了一个委托工具,因此协调器模型可以将请求的某些部分路由给专家。子代理可以通过相同的 chat() 接口在本地运行或通过 HTTP 端点运行。中间件层还提供了可组合的钩子,用于指数退避重试、跨提供商的模型回退、工具批准门控,以及一个技能系统,该系统将 SKILL.md 文件加载到系统提示中。

通过插件架构,Genkit 与模型无关。官方插件支持 Google AI(Gemini)、Vertex AI、Anthropic、OpenAI 和 Ollama。Vercel AI SDK 适配器使团队能够将 Genkit 代理集成到 Next.js 应用程序中。每个代理本身都是一个可服务的操作,路由助手只需几行代码即可在标准 HTTP 多路复用器上设置 turn、snapshot 和 abort 端点。

竞争环境是一个拥挤的领域。LangChain、CrewAI、Semantic Kernel、Autogen、Mastra 和 Pydantic AI 都在解决重叠的问题。谷歌本身正在两个层面同时构建代理基础设施:Genkit 用于自托管代理应用,Gemini API 中的 Managed Agents 用于谷歌托管的运行时,其中后台执行、远程 MCP 服务器和沙箱代码执行完全在服务器端处理。Genkit 在更广泛的生态系统中的差异化优势是全栈方法:服务器端代理逻辑、适用于 Web 和移动设备的类型化客户端 SDK、内置的流式传输协议,以及部署到 Firebase、Cloud Run 或任何运行 Node.js 或 Go 的环境。权衡是 Genkit 相对年轻,与 LangChain 相比,社区集成的生态系统规模较小。

Agents API 处于预览阶段。中间件系统在 TypeScript、Go 和 Dart 中已正式发布(GA)。Genkit 在 GitHub 上以 Apache 2.0 许可证开源。

作者部分主容器

关于作者

小节标题

每个作者的主容器

#### Steef-Jan Wiggers

显示更多

显示更少

#### 该内容属于云技术主题

##### 相关主题:

  • 开发
  • 架构与设计
  • DevOps
  • 人工智能、机器学习与数据工程
  • Java
  • API
  • 开源项目发布
  • 代理
  • Google Cloud
  • 人工智能架构
  • 相关编辑内容
  • 相关赞助商 [使用智能代理AI构建最佳应用——通过架构防护措施实现确定性结果](链接)
  • 相关赞助商 [Copilots使单个开发者效率提升。WaveMaker使10个小组保持一致性。通过架构治理和可预测的结果,实现不同技能水平的开发人员一致性。尝试WaveMaker AI](链接)

InfoQ 电子报

每周二发送上周InfoQ内容摘要。加入超过25万名高级开发者的社区。[查看示例](链接)

我们保护您的隐私。