@21st-sdk/agent

中文文档
0.0.18发布于 2026/04/29MITTypeScriptESM + CJS近 30 天下载 3264

定义 AI 代理和工具,对 21 代理 机构进行全面类型推断

中文使用文档
文档目录8 节
  1. 安装
  2. 快速启动
  3. API 密码
  4. agent(config)
  5. tool(definition)
  6. 钩子
  7. 如何运作
  8. 许可证

@ 21st- sdk/ 代理服务器

定义全类型推断的AI代理. 配置层 21号特工。 。 。 .

安装

npm install @21st-sdk/agent zod

快速启动

创建 src/agent.ts数字 :

import { agent, tool } from "@21st-sdk/agent"
import { z } from "zod"

export default agent({
  model: "claude-sonnet-4-6",
  systemPrompt: "You are a helpful coding assistant.",
  tools: {
    greet: tool({
      description: "Greet a user by name",
      inputSchema: z.object({ name: z.string() }),
      execute: async ({ name }) => ({
        content: [{ type: "text", text: `Hello, ${name}!` }],
      }),
    }),
  },
})

然后部署与 第21个SDK CLI数字 :

npx @21st-sdk/cli login
npx @21st-sdk/cli deploy

API 密码

agent(config)

创建代理配置。 返回配置为 a _type: "agent" 运行时间标记 .

export default agent({
  // Model to use (default: "claude-sonnet-4-6")
  model: "claude-sonnet-4-6",

  // For "claude-code" runtime, string prompts are appended
  // to Claude Code's preset system prompt by default.
  systemPrompt: "You are a PR reviewer...",

  // Custom tools the agent can use
  tools: {
    lint: tool({ ... }),
    test: tool({ ... }),
  },

  // Runtime: "claude-code" (default) or "codex"
  runtime: "claude-code",

  // Permission mode: "default", "acceptEdits", or "bypassPermissions"
  permissionMode: "default",

  // Max turns before stopping (default: 50)
  maxTurns: 50,

  // Max budget in USD
  maxBudgetUsd: 5,

  // Lifecycle hooks
  onStart: async () => { ... },
  onToolCall: async ({ toolName, input }) => { ... },
  onToolResult: async ({ toolName, input, output }) => { ... },
  onStepFinish: async ({ step }) => { ... },
  onFinish: async ({ result }) => { ... },
  onError: async ({ error }) => { ... },
})

tool(definition)

用 Zod schema 验证创建工具定义 .

import { tool } from "@21st-sdk/agent"
import { z } from "zod"

const myTool = tool({
  description: "What this tool does",
  inputSchema: z.object({
    path: z.string(),
    verbose: z.boolean().optional(),
  }),
  execute: async (args) => {
    // args is fully typed from the schema
    return {
      content: [{ type: "text", text: "result" }],
    }
  },
})

钩子

onToolCall

在工具执行前运行 。 返回时 false 挡住它.

onToolCall: async ({ toolName, input }) => {
  if (toolName === "Bash" && input.command?.includes("rm -rf")) {
    return false // blocked
  }
}

onFinish

代理成功完成后运行 .

onFinish: async ({ result }) => {
  await fetch("https://my-api.com/webhook", {
    method: "POST",
    body: JSON.stringify({ done: true }),
  })
}

如何运作

agent() 财务报告和审定财务报表 tool() 是身份功能 —— 它们完全返回您传递的东西, 并添加了类型的推论。 实际处决发生在使用克洛德特工SDK的第21代理运行时间(E2B sandbox).

您的代码运行在一个安全的云沙盒中, 完全可以访问 Node.js, git, 和系统工具.

对于 runtime: "claude-code",省略 systemPrompt 使用 Claude Code 的默认预设系统快取. 如果您通过一个字符串, 它会自动附在预设上 。 您也可以直接通过预设对象 :

systemPrompt: {
  type: "preset",
  preset: "claude_code",
  append: "Your extra instructions here",
}

许可证

麻省理工学院

版本与发布记录

@21st-sdk/agent 共发布 13 个版本,首次发布于 2026/03/06;过去 12 个月发布了 13 个版本。

版本发布日期距今
0.0.18latest2026/04/296 个月前
0.0.162026/04/087 个月前
0.0.152026/04/077 个月前
0.0.142026/03/197 个月前
0.0.132026/03/197 个月前
0.0.122026/03/187 个月前

关于 @21st-sdk/agent 的常见问题

@21st-sdk/agent 是什么?

定义 AI 代理和工具,对 21 代理 机构进行全面类型推断

如何安装 @21st-sdk/agent?

在项目目录运行 npm install @21st-sdk/agent,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(>=3.24)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@21st-sdk/agent 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@21st-sdk/agent 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@21st-sdk/agent 可以商用吗?

@21st-sdk/agent 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@21st-sdk/agent 的下载量有多少?

根据 npm 官方下载统计,@21st-sdk/agent 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,264 次,日均约 109 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@21st-sdk/agent 还在维护吗?

最新版本 0.0.18 发布于 2026/04/29(6 个月前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/03/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。