@ agentskit/ 状态图
简介 : concise-package
标记 : agentskit • 妇女 typescript • 妇女 ai-agents
决定性、可序列的交互状态 探员Kit 应用。 它是框架中立的,并且零运行时间依赖.
为什么
互动代理经验往往需要明确的状态,如等待投入、确认某项行动或完成某项任务等。 这个软件包赋予每个UI绑定和主机相同的小转换和快照合同,而不将它们与LLM提供商React相接, ChatController,或运行时执行引擎.
使用运行时流进行持久执行,DAG,工具,以及效果. 用于本地或主机管理的互动状态 .
已核实的证据
- 软件包元数据和测试在
packages/statechart/。 。 。 . - 软件包指南 : https://www.agentskit.io/docs/参考资料/packages/statechart
- 稳定地图: 文件/服务.md
安装
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 书记官处 现成代理商和 代理游戏本 用于生产做法.