AgentKit 快速上手:30 分钟构建你的第一个智能体网络
2026/7/5 17:25:09 网站建设 项目流程

AgentKit 快速上手:30 分钟构建你的第一个智能体网络

【免费下载链接】agent-kitAgentKit: Build multi-agent networks in TypeScript with deterministic routing and rich tooling via MCP.项目地址: https://gitcode.com/gh_mirrors/ag/agent-kit

想要在TypeScript中快速构建强大的多智能体网络吗?AgentKit是你的终极解决方案!这个开源框架让构建具备确定性路由和丰富工具支持的多智能体系统变得前所未有的简单。无论你是AI开发者还是企业技术团队,都能在30分钟内创建你的第一个智能体网络。✨

🚀 什么是AgentKit?

AgentKit是一个基于TypeScript的多智能体网络构建框架,通过确定性路由和MCP(Model Context Protocol)工具支持,让你能够快速构建、部署和扩展AI智能体系统。它结合了Inngest开发服务器的本地开发体验和云端的容错编排引擎,为智能体开发提供了完整的解决方案。

核心功能包括:

  • 智能体(Agents):结合LLM调用、提示词、工具和MCP的AI智能体
  • 网络(Networks):让多个智能体协作的简单方式,支持共享状态和交接
  • 状态(State):结合对话历史和完全类型化的状态机,用于路由决策
  • 路由器(Routers):从基于代码到基于LLM(如ReAct)的编排逻辑
  • 追踪(Tracing):本地和云端的内置追踪功能,用于调试和优化工作流

📦 快速开始:安装与配置

第一步:环境准备

首先确保你的开发环境已经安装了Node.js(版本20.x以上)和npm:

node -v npm -v

第二步:创建项目并安装依赖

创建一个新的TypeScript项目并安装AgentKit:

mkdir my-agent-network cd my-agent-network npm init -y npm install @inngest/agent-kit inngest npm install -D typescript @types/node

第三步:配置API密钥

AgentKit支持多种模型提供商。以Anthropic Claude为例,设置你的API密钥:

export ANTHROPIC_API_KEY=sk-ant-api03-XXXXXX....

🎯 构建你的第一个智能体网络

让我们通过一个实际的DevOps支持场景来学习AgentKit的核心概念。我们将创建一个包含数据库管理员和安全专家的智能体网络。

1. 定义网络状态

首先,在index.ts中定义网络状态类型:

import "dotenv/config"; import { anthropic, createAgent, createNetwork, createTool, Tool } from "@inngest/agent-kit"; import { createServer } from "@inngest/agent-kit/server"; import { z } from "zod"; export interface NetworkState { dba_agent_answer?: string; // 数据库管理员答案 security_agent_answer?: string; // 安全专家答案 }

2. 创建数据库管理员智能体

创建专门处理数据库架构和索引问题的智能体:

const dbaAgent = createAgent({ name: "Database administrator", description: "提供PostgreSQL数据库管理的专家支持", system: "你是一名PostgreSQL专家数据库管理员。你只回答与PostgreSQL数据库架构、索引、扩展相关的问题。", model: anthropic({ model: "claude-3-5-haiku-latest", defaultParameters: { max_tokens: 4096, }, }), tools: [ createTool({ name: "provide_answer", description: "提供问题的答案", parameters: z.object({ answer: z.string(), }), handler: async ({ answer }, { network }: Tool.Options<NetworkState>) => { network.state.data.dba_agent_answer = answer; }, }), ] });

3. 创建安全专家智能体

创建专门处理数据库安全问题的智能体:

const securityAgent = createAgent({ name: "Database Security Expert", description: "提供PostgreSQL安全、访问控制、审计日志和合规最佳实践的专家指导", system: "你是一名PostgreSQL安全专家。提供与PostgreSQL安全主题相关的答案,如加密、访问控制、审计日志和合规最佳实践。", model: anthropic({ model: "claude-3-5-haiku-latest", defaultParameters: { max_tokens: 4096, }, }), tools: [ createTool({ name: "provide_answer", description: "提供问题的答案", parameters: z.object({ answer: z.string(), }), handler: async ({ answer }, { network }: Tool.Options<NetworkState>) => { network.state.data.security_agent_answer = answer; }, }), ] });

4. 创建智能体网络

将两个智能体组合成一个网络,并定义路由逻辑:

const devOpsNetwork = createNetwork<NetworkState>({ name: "DevOps团队", agents: [dbaAgent, securityAgent], router: async ({ network }) => { if (network.state.data.dba_agent_answer && !network.state.data.security_agent_answer) { return securityAgent; } else if (network.state.data.security_agent_answer && network.state.data.dba_agent_answer) { return; } return dbaAgent; }, });

5. 启动服务器

创建并启动AgentKit服务器:

const server = createServer({ agents: [], networks: [devOpsNetwork], }); server.listen(3010, () => console.log("AgentKit服务器已启动!"));

🔧 测试你的智能体网络

启动开发服务器

AgentKit集成了Inngest开发服务器,提供强大的调试和测试功能:

npx inngest-cli@latest dev -u http://localhost:3010/api/inngest

访问http://localhost:8288/functions打开开发服务器界面。

测试智能体网络

在开发服务器中,点击"Invoke"按钮测试你的智能体网络。使用以下JSON作为输入:

{ "data": { "input": "我正在构建一个金融应用程序。请帮我回答以下两个问题:\n- 如何将我的应用程序扩展到每秒数百万个请求?\n- 我应该如何设计我的架构以确保每个组织的数据安全?" } }

查看执行追踪

AgentKit提供完整的执行追踪功能,让你可以:

  • 查看每个智能体的执行步骤
  • 检查工具调用和结果
  • 监控状态变化
  • 调试路由决策

🎨 高级功能:状态管理和路由

基于状态的路由

AgentKit的独特之处在于其基于状态的路由系统。状态是一个键值存储,在网络中的所有智能体之间共享,可以从路由器、智能体生命周期回调、智能体提示词和工具中访问。

// 基于状态的复杂路由示例 router: async ({ network }) => { const state = network.state.data; if (!state.initialized) { return initializationAgent; } if (state.needsAnalysis && !state.analysisComplete) { return analysisAgent; } if (state.analysisComplete && !state.reportGenerated) { return reportingAgent; } return undefined; // 网络执行完成 }

智能体生命周期管理

AgentKit支持完整的智能体生命周期管理:

const agent = createAgent({ name: "智能助手", system: "你是一个有用的助手", lifecycle: { onStart: async ({ network }) => { console.log("智能体开始执行"); network.state.data.startTime = Date.now(); }, onComplete: async ({ network }) => { console.log("智能体执行完成"); network.state.data.endTime = Date.now(); }, onError: async ({ error, network }) => { console.error("智能体执行出错:", error); network.state.data.lastError = error.message; } } });

📚 实际应用场景

场景1:代码助手网络

查看examples/code-assistant-agentic示例,了解如何构建一个多智能体代码助手网络:

  1. 代码分析智能体:分析代码结构和质量
  2. 文档生成智能体:自动生成代码文档
  3. 测试生成智能体:创建单元测试
  4. 总结智能体:生成最终报告

场景2:客户支持系统

查看examples/support-agent-human-in-the-loop示例,了解如何构建客户支持系统:

  1. 一级支持智能体:处理常见问题
  2. 技术专家智能体:处理复杂技术问题
  3. 路由智能体:根据问题类型智能路由
  4. 人工介入机制:需要时转接给人工支持

场景3:自动化开发工作流

查看examples/daytona-coding-agent示例,了解如何构建自动化开发工作流:

🛠️ 工具集成与MCP支持

AgentKit通过MCP(Model Context Protocol)支持丰富的工具生态系统:

// MCP服务器集成示例 mcpServers: [ { name: "neon", transport: { type: "streamable-http", url: "https://server.smithery.ai/neon/mcp", }, }, { name: "github", transport: { type: "stdio", command: "npx", args: ["@modelcontextprotocol/server-github"], }, } ]

📈 部署与生产就绪

本地开发

使用Inngest开发服务器进行本地开发和测试:

npm run inngest-dev

云端部署

AgentKit与Inngest云编排引擎无缝集成,提供生产级功能:

  • 容错执行:自动重试和错误处理
  • 可扩展性:根据负载自动扩展
  • 监控和告警:实时监控和告警系统
  • 版本管理:无缝部署和版本控制

部署步骤

  1. 配置Inngest:在Inngest仪表板中创建应用
  2. 设置环境变量:配置API密钥和端点
  3. 部署应用:使用你喜欢的部署平台
  4. 监控执行:使用Inngest追踪和监控功能

🎓 最佳实践

1. 从简单开始

开始时构建简单的智能体网络,逐步增加复杂性。参考examples/quick-start作为起点。

2. 使用类型安全

充分利用TypeScript的类型系统确保状态和参数的类型安全:

interface ProjectState { requirements: string[]; architecture: ArchitecturePlan | null; codeFiles: CodeFile[]; tests: TestSuite[]; documentation: Documentation | null; }

3. 实施安全防护

为敏感操作添加安全防护:

const safeTool = createTool({ name: "execute_sql", description: "执行SQL查询", parameters: z.object({ query: z.string(), }), handler: async ({ query }, { network }) => { // 安全检查 if (query.toLowerCase().includes("drop table")) { throw new Error("DROP TABLE操作被阻止"); } // 执行查询 return await executeQuery(query); }, });

4. 监控和追踪

充分利用AgentKit的内置追踪功能监控智能体性能:

// 自定义追踪点 await step?.run("complex_operation", async () => { // 你的复杂操作 return result; });

🔍 故障排除

常见问题

  1. 智能体不响应:检查API密钥和网络连接
  2. 路由逻辑错误:使用追踪功能调试状态变化
  3. 工具调用失败:检查工具参数和权限
  4. 性能问题:优化提示词和减少不必要的工具调用

调试技巧

  • 使用console.log在生命周期回调中调试
  • 检查Inngest开发服务器的详细日志
  • 使用AgentKit的追踪功能查看执行流程
  • 逐步测试每个智能体和工具

🚀 下一步学习

你已经成功构建了第一个AgentKit智能体网络!接下来可以:

  1. 探索更多示例:查看examples/目录中的完整示例
  2. 学习高级模式:研究状态管理和高级路由策略
  3. 集成外部工具:通过MCP集成更多工具和服务
  4. 部署到生产:将你的智能体网络部署到云端

AgentKit的强大功能让你能够构建复杂的多智能体系统,同时保持代码的简洁和可维护性。开始你的智能体开发之旅,构建下一代AI应用吧!🚀

记住,最好的学习方式是实践。克隆AgentKit仓库,运行示例,然后开始构建你自己的智能体网络:

git clone https://gitcode.com/gh_mirrors/ag/agent-kit cd agent-kit pnpm install cd examples/quick-start npm install npm start

祝你构建愉快!🎉

【免费下载链接】agent-kitAgentKit: Build multi-agent networks in TypeScript with deterministic routing and rich tooling via MCP.项目地址: https://gitcode.com/gh_mirrors/ag/agent-kit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询