主要特性
1.2.1 流式优先
- 原生支持流式输出,可与 AmritaCore 无缝配合,实现实时响应
- 工作流可在节点之间挂起、恢复,完美适配 LLM 流式生成、长连接等场景
- 内置
SuspendObjectStream抽象,让流式控制流的编写像普通迭代一样自然
1.2.2 图灵完备(节点即原语)
AmritaSense 原生提供了完整的控制流能力,无需依赖外部图引擎或状态机:
- 条件逻辑:
IF/ELIF/ELSE,无需强制配对ELSE,支持链式组合 - 循环结构:
WHILE(前置条件)和DO...WHILE(后置条件) - 跳转指令:
GOTO配合ALIAS,支持相对寻址与绝对寻址 - 异常处理:
TRY...CATCH,栈操作安全,保证嵌套场景下的完整性
节点即原语:每个节点就是一个普通的可调用对象(函数或协程),无需特殊继承。框架不依赖“边”和“图”的运行时解析,所有控制流在编译期被展开为统一的指针指令,运行时只有整数运算和函数调用。
1.2.3 异步原生
- 全程支持
async/await,与 Python 现代异步生态完美融合 - 工作流执行器基于
asyncio,所有 I/O 密集型操作均可非阻塞执行 - 挂起/恢复机制完全异步,不会阻塞事件循环
1.2.4 高扩展性
- 自定义节点:只需实现一个可调用对象,即可作为节点嵌入工作流
- 自编译指令:通过实现
SelfCompileInstruction接口,你可以创建全新的高级控制流原语。 - 可扩展指令集:无需修改核心运行时,即可注册新的跳转类型或寻址模式
1.2.5 依赖注入(自动上下文解析)
- 节点通过函数签名声明所需参数,框架自动从工作流上下文中解析
- 基于类型注解的依赖解析,告别
Dict[str, Any]式的隐式状态传递 - 支持自定义依赖工厂,灵活控制对象的创建与作用域
1.2.6 轻量 · 高性能
- 核心引擎仅数千行代码,无重型抽象,无运行时状态字典
- 编译时展开高级结构,运行时开销几乎为零
