跳转至

Nexa 3.0 中的 2.4 兼容路径

本页说明保留的 2.4 语言与运行时路径,无版本声明的源码继续使用此入口。新 Open Programs 从 Nexa 3.0 开始,合同差异见迁移指南。

Actor 生命周期

一个 flow 拥有它创建的 Actor。每个 Actor 使用独立 Agent 会话和顺序邮箱;后续消息保留该 Actor 的历史,累计模型与工具预算以及总时限。

启动、发送与等待

先配置模型,再保存为 actor.nx 并运行 uv run nexa run actor.nx。Worker 按顺序处理两条消息,第二条消息可以使用第一条的会话历史;flow 返回第二条回复。

agent Worker {
    prompt: "Process messages in order and retain prior context."
}

flow main {
    worker = spawn Worker("Inspect the evidence");
    pass "Summarize the evidence" to worker;
    result = await worker;
}

spawn 启动 Actor,pass 排队后续输入,await 关闭邮箱并返回最后一次结果。flow 最多同时拥有 8 个活跃 Actor;已 await 的 Actor 释放并发名额。

结束与失败

所有 Actor 必须在 flow 返回前 await。flow 异常或漏掉 await 时,运行时取消其余任务并等待线程退出,再报告失败。工具本身的取消行为仍受协作取消约束。

模型 Actor 自动消费邮箱。独立 receive() 需要自定义消息处理器,当前语言运行路径会明确报错。Actor 会话只存在于当前 flow;跨进程审批和恢复使用 execute() 或 nexa agent。

多个 Actor 的独立会话与同一个 Actor 的连续消息分别适合并行分工和有序工作。若只是有界并行并聚合结果,阅读 fork/merge。


来源与验证 · actors / execution