@agentskit/statechart

中文文档
0.3.2发布于 2026/10/10MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 9773

AgentsKit 应用程序的决定性,可序列化的交互状态.

中文使用文档
文档目录11 节
  1. 为什么
  2. 已核实的证据
  3. 安装
  4. 使用量
  5. 合同
  6. 故意边界
  7. 许可证
  8. 快开始
  9. 成熟性和相容性
  10. 捐款
  11. 如何适应生态系统

@ agentskit/ 状态图

简介 : concise-package

AgentsKit

标记 : agentskit • 妇女 typescript • 妇女 ai-agents

stability

决定性、可序列的交互状态 探员Kit 应用。 它是框架中立的,并且零运行时间依赖.

为什么

互动代理经验往往需要明确的状态,如等待投入、确认某项行动或完成某项任务等。 这个软件包赋予每个UI绑定和主机相同的小转换和快照合同,而不将它们与LLM提供商React相接, ChatController,或运行时执行引擎.

使用运行时流进行持久执行,DAG,工具,以及效果. 用于本地或主机管理的互动状态 .

已核实的证据

安装

npm install @agentskit/statechart

使用量

import {
  createStatechartInstance,
  defineStatechart,
  serializeStatechart,
  transitionStatechart,
  type StatechartEvent,
} from '@agentskit/statechart'

type Context = { confirmed: boolean }
type Event = StatechartEvent<'confirm'> | StatechartEvent<'cancel'>

const parseContext = (input: unknown): Context => {
  if (
    input === null ||
    typeof input !== 'object' ||
    typeof (input as { confirmed?: unknown }).confirmed !== 'boolean'
  ) {
    throw new TypeError('invalid context')
  }
  return input as Context
}

const confirmation = defineStatechart<
  Context,
  Event,
  'waiting' | 'confirmed' | 'cancelled'
>({
  id: 'confirmation',
  version: '1',
  initial: 'waiting',
  parseContext,
  states: {
    waiting: {
      on: {
        confirm: {
          target: 'confirmed',
          reduce: (context) => ({ ...context, confirmed: true }),
        },
        cancel: { target: 'cancelled' },
      },
    },
    confirmed: {},
    cancelled: {},
  },
})

const initial = createStatechartInstance(
  confirmation,
  { confirmed: false },
  { instanceId: 'interaction-42', now: '2026-07-13T12:00:00.000Z' },
)

const result = transitionStatechart(
  confirmation,
  initial,
  { type: 'confirm' },
  { now: '2026-07-13T12:01:00.000Z' },
)

if (result.status === 'accepted') {
  const snapshot = serializeStatechart(result.instance)
  await yourStorage.save(snapshot)
}

主机提供身份证、时间戳、存储和事件交付。 这使得可复制的转换器和包可移植到浏览器、服务器、本地和终端运行时间.

合同

  • defineStatechart 验证目标并冻结信任的运行时间定义 .
  • createStatechartInstance 验证并冻结JSON相容上下文.
  • transitionStatechart 同步并返回 accepted 或者说 rejected 结果.
  • serializeStatechart 创建一个版本的 JSON 兼容快照 .
  • restoreStatechart 接受 unknown,验证元数据和上下文,从不信任序列化定义.
  • notifyStatechartObserver 单独提供完成的结果; 观察失败不能改变状态.

事件,上下文,和快照使用一个精确的JSON边界:稀有或装饰的阵列,存取器,符号,异地原型,以及非无限数字被拒绝而不引用取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取取 敌对但有效的对象密钥, 如 __proto__ 仍然是普通数据密钥。 观察者必须同步完成;返回的可处理器被隔离为打出故障.

背景验证通过 parseContext,因此应用程序可以使用任何验证库而不在此包中添加一个.

故意边界

此套件不执行动作,不坚持快照,调用代理或工具,不重试事件,不重复发送,不渲染组件,也不定义产品特定状态. 重复的事件遵循了当前状态的过渡表;交付一能属于主机.

见 ADR-0020 (韩语) 所有权决定 ADR-0027 (英语) 对于硬化的β边界.

许可证

麻省理工学院

快开始

import { createStatechartInstance, defineStatechart } from '@agentskit/statechart'

const toggle = defineStatechart({
  id: 'toggle',
  version: '1',
  initial: 'off',
  parseContext: () => ({}),
  states: { off: { on: { toggle: { target: 'on' } } }, on: {} },
})

const instance = createStatechartInstance(toggle, {}, {
  instanceId: 'toggle-1',
  now: '2026-07-17T12:00:00.000Z',
})

console.log(instance.state)

成熟性和相容性

  • 稳定性: β 语录 看到了吗 文件/服务.md
  • 节点.js 20+ 财务报告和审定财务报表 类型脚本 严格模式
  • 发表于 @agentskit/statechart

捐款

见 捐款额 单曲 自由主义。 。 。 .

如何适应生态系统

使用 代理人Kit 书记官处 现成代理商和 代理游戏本 用于生产做法.

版本与发布记录

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

版本发布日期距今
0.3.2latest2026/10/1026 天前
0.3.12026/09/032 个月前
0.3.02026/07/203 个月前
0.2.12026/07/203 个月前
0.2.02026/07/143 个月前

关于 @agentskit/statechart 的常见问题

@agentskit/statechart 是什么?

AgentsKit 应用程序的决定性,可序列化的交互状态.

如何安装 @agentskit/statechart?

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

@agentskit/statechart 支持 TypeScript 吗?

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

@agentskit/statechart 支持 ESM 还是 CommonJS?

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

@agentskit/statechart 需要什么版本的 Node.js?

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

@agentskit/statechart 可以商用吗?

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

@agentskit/statechart 的下载量有多少?

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

@agentskit/statechart 还在维护吗?

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