
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 服务器:
import { createAgent } from "@inngest/agent-kit";
const codeReviewer = createAgent({
name: "code-reviewer",
system: "你是一个严格的代码审查者。审查提交的代码并提供改进建议。",
tools: [gitTool, lintTool],
});Network(网络)
Network 是 Agent 协作的容器。多个 Agent 共享一个 State,可以互相传递任务:
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 被调用了什么工具、返回了什么结果、花了多长时间。
安装与快速开始
npm i @inngest/agent-kit inngest注意:从 v0.9.0 开始,@inngest/agent-kit 和 inngest 需要分开安装,确保运行时兼容。
一个完整的 MCP Agent 示例(以 Neon 数据库 MCP 服务器为例):
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 完成具体任务。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/ai/agent-kit-framework
相关文章
微软开源 Agent Framework 1.0 正式发布:.NET 和 Python 双语言支持
微软正式发布 Agent Framework 1.0,这是一个开源 SDK 和运行时,用于构建和编排多 Agent 工作流。支持 A2A 协议、MCP 集成、任何模型提供商,覆盖 .NET 和 Python。
AI Agent 架构演进:从单智能体到多智能体协作的设计范式转移
单智能体搞不定复杂任务?本文梳理了从 ReAct 到多智能体协作的架构演进,对比 AutoGen、CrewAI、LangGraph 等框架,帮你选对架构。
Code with Claude 2026 大会亲历记:AI 原生的工程组织长什么样
Anthropic 第二届 Code with Claude 开发者大会的完整回顾:上下文窗口的困局、瓶颈的转移、AI 原生团队的重组方式,以及 Robobun 背后工程范式转变的启示。