@b4run/sdk

中文文档
0.15.8发布于 2026/10/31MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 5775

用于定义 B4. run 代理、工具、中间软件、内存和路由的作者化类型SDK.

中文使用文档
文档目录6 节
  1. 安装
  2. 示例
  3. 运行时间和稳定性
  4. 相关
  5. 成熟和支持
  6. 许可证

B4.run

@b4run/ sdk (英语)

用于编写 B4. run apps 的 TypeScript SDK: 运行时函数, 如 agent(), (中文(简体) ), defineMemory() 财务报告和审定财务报表 defineMiddleware(),以及工具、路线和运行时间合同的类型.

当 : 您正在撰写路径、 工具、 中间软件、 内存声明, 或输入运行时合同 .

The B4.run navlog demo: a VFR flight plan with its navlog sheet in the Workbench. Opens the demo video.
观察50秒的导航演示

安装

需要节点.js 24或后. create-b4-app 通常为您安装 SDK, 同时 @b4run/cli因为线路运行在CLI的运行时间。 将两者添加到现有的应用程序中:

npm install @b4run/sdk @b4run/cli

添加 zod 当声明输入的长期内存时:

npm install zod

示例

定义代理路由 issueRefund 工具需要个人批准:

// src/app/support/index.ts
import { agent } from "@b4run/sdk"

export default agent({
  model: "gpt-5-mini",
  systemPrompt: "Answer support questions clearly and concisely.",
  tools: { approve: ["issueRefund"] },
})
// src/app/support/tools/issueRefund.ts
/** Refund an order. */
export default async (input: { readonly orderId: string }) => {
  return { refunded: input.orderId }
}

每个工具都是一个默认导出的文件: 路由本地工具在路由的 tools/ 目录和共享工具 src/tools/中的名称 tools.approve 每次通话暂停,直到有人回答,一个"总是"的回答会停止该工具的提示. 写入 { tool: "issueRefund", allowAlways: false } 而不是每通电话都问.

同一软件包提供相邻的内存和中间软件声明:

// src/app/support/memory.ts
import { defineMemory } from "@b4run/sdk"
import { z } from "zod"

export default defineMemory({
  kind: "semantic",
  scope: ["workspace", "route"],
  schema: z.object({
    subject: z.string(),
    predicate: z.string(),
    value: z.string(),
  }),
})
// src/middleware.ts
import { defineMiddleware } from "@b4run/sdk"

export default defineMiddleware(() => ({ action: "continue" }))

或者,拥有长寿资源的中间软件,例如数据库 池中,使用生命周期形式而不是上面的函数. setup 运行一次, 懒惰地,在第一个登门请求之前(如果 失败); dispose 当节点运行时间关闭时运行.

// src/middleware.ts
import { allow, defineMiddleware, reject } from "@b4run/sdk"
import { Pool } from "pg"

let pool: Pool | undefined

export default defineMiddleware({
  async setup() {
    pool = new Pool({ connectionString: process.env.DATABASE_URL })
    await pool.query("select 1")
  },
  async dispose() {
    await pool?.end()
  },
  async handle(req) {
    const token = req.headers.authorization?.replace(/^Bearer /, "")
    if (!token) return reject(401)
    const result = await pool?.query("select user_id from sessions where token = $1", [token])
    const row = result?.rows[0]
    return row ? allow({ userId: row.user_id }) : reject(401)
  },
})

这个 认证中间软件配方 穿过无记名证。 启动模板解决呼叫者一次, in src/auth.ts,从两者导入 src/middleware.ts 财务报告和审定财务报表 src/thread-access.ts; 添加时保持该形状 线程访问,所以两个文件 同意谁是打电话者.

运行时间和稳定性

  • @b4run/sdk 是支持的边缘安全应用表面.
  • @b4run/sdk/pure 是一个支持的无依赖的边缘安全整合表面.
  • @b4run/sdk/testing 是一个被支持的只有节点的情景作者表面。 这是分开的 @b4run/testing。 。 。 .

成熟和支持

B4.run为1.0前置,其公用地表可以改变. 所有可公布的 B4. 运行包作为一个固定组一起发布; 审查 @b4run/sdk 更改日志 财务报告和审定财务报表 升级指南 升级前。 用于支持, 使用 GitHub 讨论; 报告缺陷 GitHub 问题。 。 。 .

许可证

麻省理工学院. 见 仓库许可证。 。 。 .

版本与发布记录

@b4run/sdk 共发布 23 个版本,首次发布于 2026/09/09;过去 12 个月发布了 23 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.15.8latest2026/10/317 天前
0.15.72026/10/2810 天前
0.15.52026/10/2712 天前
0.15.42026/10/2612 天前
0.15.22026/10/2514 天前
0.15.12026/10/2414 天前

关于 @b4run/sdk 的常见问题

@b4run/sdk 是什么?

用于定义 B4. run 代理、工具、中间软件、内存和路由的作者化类型SDK.

如何安装 @b4run/sdk?

在项目目录运行 npm install @b4run/sdk,或使用 pnpm add / yarn add / bun add。

@b4run/sdk 支持 TypeScript 吗?

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

@b4run/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@b4run/sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@b4run/sdk 可以商用吗?

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

@b4run/sdk 的下载量有多少?

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

@b4run/sdk 还在维护吗?

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