@b4run/ sdk (英语)
用于编写 B4. run apps 的 TypeScript SDK: 运行时函数, 如 agent(), (中文(简体) ), defineMemory() 财务报告和审定财务报表 defineMiddleware(),以及工具、路线和运行时间合同的类型.
当 : 您正在撰写路径、 工具、 中间软件、 内存声明, 或输入运行时合同 .
安装
需要节点.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。 。 。 .
相关
@b4run/cli开发、测试、建造和服务SDK申报的路线.@b4run/testing为 B4. 运行应用程序提供程序配置.- SDK API 参考
- 探员
- 工具
- 中间软件
- 内存
- 假设测试
成熟和支持
B4.run为1.0前置,其公用地表可以改变. 所有可公布的 B4. 运行包作为一个固定组一起发布; 审查 @b4run/sdk 更改日志 财务报告和审定财务报表 升级指南 升级前。 用于支持, 使用 GitHub 讨论; 报告缺陷 GitHub 问题。 。 。 .
许可证
麻省理工学院. 见 仓库许可证。 。 。 .