AI 前沿·阅读约 2 分钟·
AgentKit:用 TypeScript 构建确定性多 Agent 网络的开源框架

AgentKit:用 TypeScript 构建确定性多 Agent 网络的开源框架

AgentKit 是 Inngest 推出的 TypeScript 多 Agent 框架,支持确定性路由、MCP 工具集成和内置追踪,让 Agent 协作像写普通代码一样可预测。

原文来源:inngest/agent-kit — 一个 TypeScript 原生多 Agent 框架,提供确定性路由、富工具集成(MCP)和内置追踪,让构建可预测的 Agent 网络变得简单。

市面上大多数 AI Agent 框架都在追求一个目标:让 Agent 自主决策、自主行动。OpenAI Agents SDK、LangGraph、CrewAI 都是这条路。但 AgentKit 选了一条截然不同的路——它不追求完全的自主性,而是强调确定性路由和可预测的协作

设计的出发点

Inngest 本来是做事件驱动的工作流编排的,他们的核心产品 Inngest Dev Server 已经被大量后端开发者使用。AgentKit 的思路跟 Inngest 一脉相承:把 Agent 之间的协作看成一种工作流,你可以用代码精确控制每一步走哪个分支、交给哪个 Agent。

这个设计哲学的核心是:Agent 的自主性应该被限制在你能理解和调试的范围内。不是所有事情都应该让 LLM 来决定。

核心概念

AgentKit 有五个核心理念,每个都很清晰:

Agent(代理)

Agent 是最基本的单元。每个 Agent 是一个 LLM 调用,可以绑定 Prompts、Tools 和 MCP 服务器:

code
import { createAgent } from "@inngest/agent-kit";
 
const codeReviewer = createAgent({
  name: "code-reviewer",
  system: "你是一个严格的代码审查者。审查提交的代码并提供改进建议。",
  tools: [gitTool, lintTool],
});

Network(网络)

Network 是 Agent 协作的容器。多个 Agent 共享一个 State,可以互相传递任务:

code
import { createNetwork } from "@inngest/agent-kit";
 
const reviewNetwork = createNetwork({
  name: "code-review-pipeline",
  agents: [codeReviewer, securityChecker, performanceAnalyzer],
  // ...
});

State(状态)

这是 AgentKit 最有意思的设计。State 不只是对话历史——它是一个完整的有类型状态机。你可以定义状态的形状、类型、转换规则。这让 Agent 之间的数据传递变得可预测、可调试。

Router(路由)

路由是 AgentKit 的核心创新。大部分框架把路由交给 LLM 自己做决定(ReAct 模式),AgentKit 支持从代码路由LLM 路由的全谱系选择:

  • 代码路由——完全由你写逻辑决定下一个 Agent 是谁,100% 可预测
  • LLM 路由——让模型根据当前状态决定下一步(类似 ReAct)
  • 混合路由——部分逻辑用代码,部分交给 LLM

Tracing(追踪)

内置的追踪系统让你可以在本地和云端调试 Agent 的工作流程。能看到每个 Agent 被调用了什么工具、返回了什么结果、花了多长时间。

安装与快速开始

code
npm i @inngest/agent-kit inngest

注意:从 v0.9.0 开始,@inngest/agent-kitinngest 需要分开安装,确保运行时兼容。

一个完整的 MCP Agent 示例(以 Neon 数据库 MCP 服务器为例):

code
import { anthropic, createAgent, createNetwork, createTool } from "@inngest/agent-kit";
import { createServer } from "@inngest/agent-kit/server";
import { z } from "zod";
 
const neonAgent = createAgent({
  name: "neon-agent",
  system: `你是 Neon 数据库助手。
  任务完成后调用 'done' 工具。`,
  mcpServers: [{
    name: "neon",
    transport: { type: "streamable-http", url: "你的 MCP 服务器地址" },
  }],
  tools: [
    createTool({
      name: "done",
      parameters: z.object({
        answer: z.string(),
      }),
      handler: async ({ answer }, { network }) => {
        network?.state.kv.set("answer", answer);
      },
    }),
  ],
});
 
const server = createServer({
  networks: [createNetwork({
    name: "neon-agent",
    agents: [neonAgent],
    defaultModel: anthropic({ model: "claude-3-5-sonnet-20240620" }),
  })],
});
 
server.start();

MCP 集成

AgentKit 对 MCP(Model Context Protocol)的支持是其一大亮点。目前支持三种 MCP 传输方式:

  • stdio——本地运行 MCP 服务器进程
  • SSE——通过 Server-Sent Events 连接
  • Streamable HTTP——基于 HTTP 的流式传输

通过 MCP,AgentKit 的 Agent 可以使用任何 MCP 生态中的工具——从文件操作到数据库查询,从代码审查到云服务 API。

你可以在 Smithery 上找到大量现成的 MCP 服务器,直接接入你的 Agent。

适合的场景

AgentKit 的确定性设计让它特别适合以下场景:

  • 需要可预测结果的 Agent 管道——代码审查、内容审核、数据清洗
  • 多步骤工作流——每个步骤的结果影响下一步的路由选择
  • 安全敏感的 Agent——你不希望 LLM 自己决定是否执行危险操作
  • 需要调试的复杂 Agent 网络——内置追踪让调试变得简单

不太适合的场景:

  • 完全自主的通用 Agent——如果你希望 Agent 自己决定一切,AgentKit 的确定性约束可能让你觉得限制了自由度
  • 高度动态的对话——AgentKit 的优势在于结构化的协作,不是自由形式的聊天

总结

AgentKit 选择了一条和主流 Agent 框架不同的路——用确定性替代黑盒。对于需要可预测、可调试、可维护的 Agent 系统的开发者来说,这是一种更务实的选择。

配合上 MCP 生态的丰富工具,AgentKit 让构建多 Agent 协作系统变得更加可控。如果你用过 Inngest 的工作流引擎,你会在 AgentKit 里看到同样的设计哲学——用代码控制流程,用 LLM 完成具体任务。

分享到
微博Twitter

© 2026 四月 · CC BY-NC-SA 4.0

原文链接:https://aprilzz.com/ai/agent-kit-framework