Each language version is independently generated for its own context, not a direct translation.
这篇论文介绍了一种名为 Turn 的全新编程语言。为了让你轻松理解,我们可以把开发“智能体(AI Agent)”比作组建一个由 AI 员工组成的公司,而 Turn 就是这家公司的管理手册和操作系统。
🌟 核心问题:为什么现有的方法不够好?
想象一下,你雇佣了一群非常聪明但有点“迷糊”的 AI 员工(大语言模型,LLM)来帮你处理工作。目前,我们是用 Python 或 JavaScript 等通用语言给它们写指令,就像给这些员工发了一堆口头备忘录。
这就导致了五个大麻烦:
- 记性太差(上下文溢出):AI 员工记不住太多事。如果任务太长,它们会像“挤牙膏”一样把最早的信息忘掉,导致工作出错。
- 听不懂人话(输出不可控):你让 AI 填表格,它可能给你一堆乱码或格式错误的文字,你的程序直接崩溃。
- 状态混乱(数据碎片化):AI 今天做了什么、明天要做什么,散落在各种数据库和变量里,没人能理清全貌。
- 一断电就失忆(无法持久化):如果程序重启,AI 员工就“失忆”了,之前的工作全白费。
- 把钥匙给猴子(密码泄露):你让 AI 去调用银行 API,结果它不小心把密码(API Key)打印出来了,或者被黑客偷走。
现有的软件框架只是试图用“规章制度”(代码规范)来约束这些 AI,但 AI 经常不遵守,导致系统崩溃。
🚀 Turn 的解决方案:给 AI 员工穿上“防弹衣”
Turn 语言不再把 AI 当作普通的函数调用,而是把它当作公司里的核心员工来管理。它通过五个“超能力”解决了上述问题:
1. 认知类型安全(Cognitive Type Safety):强制填表
- 比喻:以前你让 AI 写报告,它可能写成一首诗。现在,Turn 语言里有一个
infer 指令,就像给 AI 发了一张必须填写的标准化表格。
- 原理:你在代码里定义好表格长什么样(结构),编译器会自动生成规则。AI 填完交上来后,Turn 的“质检员”(虚拟机)会立刻检查:格式对吗?字段齐吗?如果不对,直接打回去重写,直到完美为止。
- 好处:AI 再也不会输出乱码,程序永远不会因为格式错误而崩溃。
2. 信心控制流(Confidence Operator):看脸色行事
- 比喻:AI 有时候会“瞎猜”。Turn 给了你一个**“信心指数”**。
- 原理:当 AI 给出一个答案时,它会附带一个 0 到 1 的分数(比如 0.9 表示很有把握,0.3 表示在瞎蒙)。
- 好处:你可以写规则:“如果信心指数低于 0.7,就别信 AI 的,直接启动备用方案(比如人工审核或固定规则)”。这让 AI 的随机性变得可控。
3. 演员模型(Actor Process Model):独立的办公室
- 比喻:以前的 AI 系统像是一个大杂院,所有员工挤在一个大房间里聊天,信息乱飞。Turn 给每个 AI 员工都分配了独立的办公室。
- 原理:每个 AI 进程(Actor)都有自己独立的:
- 记事本(上下文窗口):只记自己该记的事,不会和其他人混淆。
- 记忆库(持久内存):即使下班(程序暂停),记忆也会锁在保险柜里,明天接着用。
- 信箱(Mailbox):员工之间通过信箱传纸条,互不干扰。
- 好处:一个员工发疯(崩溃),不会传染给其他人;而且每个员工都能记住自己的长期任务。
4. 基于能力的身份(Capability-Based Identity):隐形钥匙
- 比喻:以前你把公司大门的钥匙串(API 密钥)直接放在桌上,AI 员工可能不小心把它拍进照片发出去。Turn 给每个员工发了一张“隐形通行证”。
- 原理:AI 手里拿的不是真实的密码,而是一个无法被复制、无法被打印、无法被转述的“令牌”。只有当它真的要去开门(调用 API)时,系统后台才会自动把真正的钥匙插进去,AI 员工自己永远看不到钥匙长什么样。
- 好处:即使 AI 被黑客控制,它也偷不走密码,因为它手里根本没有密码。
5. 编译时模式吸收(Compile-Time Schema Absorption):自动翻译官
- 比喻:以前你要手动把外部 API(比如股票数据接口)的说明书翻译成代码,很麻烦。Turn 有一个**“自动翻译官”**。
- 原理:你只需要告诉 Turn:“去把 Stripe 的 API 说明书拿过来”。Turn 在写代码的时候(编译期)就自动把说明书变成了代码里的结构体。
- 好处:你不需要手动写复杂的解析代码,而且如果 API 变了,重新编译一下,代码自动就更新了,不会出错。
🏆 实际效果:像投资委员会一样工作
论文里举了一个例子:一个投资委员会程序。
- 主席:负责收集数据(用隐形通行证访问网络)。
- 分析师:分析股票,如果 AI 对分析结果没信心(信心指数低),就自动切换成保守策略。
- 风控官:检查风险。
- 结果:这三个 AI 员工在各自的独立办公室里工作,通过信箱交流,最后由主席汇总成一份完美的报告。整个过程只有 89 行代码,而在传统的 Python 框架里可能需要 350 多行,而且容易出错。
💡 总结
Turn 语言的核心思想是:
智能体(Agent)不是一个简单的循环,而是一个有记忆、有边界、有身份的生命体。
以前的做法是用“胶水”把 AI 粘在通用语言上,容易散架。Turn 则是直接为 AI 设计了一套语言,把“记忆”、“安全”、“格式检查”变成了语言自带的功能。就像给 AI 员工穿上了防弹衣、配了独立办公室和隐形钥匙,让它们在混乱的 AI 世界里也能安全、可靠地工作。
这是一个从“用工具拼凑”到“用语言构建”的范式转变,让开发 AI 应用变得像写传统软件一样严谨和可靠。
Each language version is independently generated for its own context, not a direct translation.
1. 问题背景 (Problem)
现有的代理开发框架(如 LangChain, AutoGPT, CrewAI 等)通常作为通用语言的库存在,导致代理系统的核心不变量(如上下文边界、类型化推理输出、持久化状态、凭证隔离)缺乏语言级的保障,仅作为运行时约定存在。这引发了五种常见的失败模式:
- **无界上下文 **(Unbounded context):上下文通常作为普通消息列表管理,超出 Token 限制时会静默溢出或截断,导致模型丢失关键信息。
- **未类型化的推理输出 **(Untyped inference output):模型返回字符串,程序解析为 JSON 但无模式保证,导致运行时键错误。
- **碎片化状态 **(Fragmented state):代理状态分散在变量、数据库和框架内部,缺乏统一的序列化表示。
- **缺乏持久执行 **(No durable execution):长运行代理随进程死亡而终止,缺乏语言级的检查点和恢复机制。
- **凭证泄露 **(Credential leakage):API 密钥和 Token 以字符串形式存储,若 LLM 幻觉调用 I/O 工具,可能导致凭证被窃取。
这些失败模式在 Prescott Data 的 JarvisCore 等生产系统中被实证分析证实,表明可靠性需要语言级的强制执行,而非更好的提示词或框架。
2. 方法论与设计 (Methodology)
Turn 是一种AOT(提前编译)、动态类型(值级别)、表达式导向的语言,编译为字节码并在基于栈的虚拟机(VM)上执行。其核心抽象是 Turn(代理行为单元),类似于函数体,但隐式访问 LLM 上下文窗口、持久内存和 Actor 邮箱。
Turn 的设计哲学是**针对性严格性 **(Targeted Strictness):
- 动态类型:用于代理胶水代码和 IO 密集型操作,保持开发速度。
- 静态严格性:专门应用于高熵边界(LLM 推理)和高风险边界(API 契约),通过语言原语强制执行。
核心架构组件:
- 编译器:包含词法分析器、解析器、模式编译器(Schema Compiler)、分析器和编译器。
- **虚拟机 **(VM):基于 Rust 构建,包含标准库、语言服务器和 gRPC 交换机。
- 推理驱动:通过沙箱化的 **WebAssembly **(Wasm) 驱动集成 LLM 提供商,确保驱动无法直接访问网络或环境变量。
3. 关键贡献 (Key Contributions)
Turn 引入了五个语言级构造来解决上述问题:
3.1 认知类型安全 (Cognitive Type Safety)
- 构造:
infer Struct { prompt }
- 机制:编译器在编译期从
struct 定义生成 JSON Schema。运行时,VM 将 Schema 嵌入推理请求,并在绑定前验证模型输出。
- 保证:如果
infer 表达式成功完成,绑定的值在结构上严格符合声明的类型(定理 1)。
- 优势:消除了运行时解析错误,将 LLM 输出视为一等公民的 typed primitive。
3.2 概率控制流 (Probabilistic Control Flow)
- 构造:
confidence v
- 机制:从推理结果中提取模型报告的置信度(0.0 - 1.0)。
- 应用:允许程序基于模型的确定性进行确定性分支。例如,若置信度低于 0.7,则回退到确定性逻辑。
- 代数:支持概率传播(如乘法规则、Zadeh 最小值规则),使随机路径和确定性路径能在同一类型纪律下组合。
3.3 基于 Actor 的代理进程模型 (Agentic Process Model)
- 构造:
spawn, spawn_link, spawn_each
- 机制:借鉴 Erlang 的 Actor 模型,但针对代理领域进行了扩展。每个进程拥有独立的三元组上下文架构:
- **P0 **(System):系统提示,始终位于上下文首位(利用首因效应,召回率~90%)。
- **P1 **(Working):最近的工作项,受限于容量(利用近因效应,召回率~85%)。
- **P2 **(Episodic):当 P1 满时,旧项降级至此而非丢弃,保留在中间区域。
- 优势:解决了“中间迷失 (Lost in the Middle)"现象,确保系统提示和最新上下文始终占据高召回位置。
3.4 基于能力的身份系统 (Capability-Based Identity)
- 构造:
grant identity::σ("name")
- 机制:返回一个不透明、不可伪造的
Identity 句柄。
- 不能转换为字符串、JSON 或传递给输出工具。
- 原始凭证仅存储在 VM 宿主(Host)环境中,通过内核陷阱(Kernel Trap)注入 HTTP 请求头,从未进入 Turn 内存。
- 优势:彻底防止 LLM 通过幻觉调用工具来窃取凭证。
3.5 编译时模式吸收 (Compile-Time Schema Absorption)
- 构造:
use schema::<protocol>("url")
- 机制:编译器宏在编译时获取 API 规范(如 OpenAPI),解析并生成原生的 Turn
struct 和闭包。
- 优势:消除了 LLM 输出与外部 API 消费之间的类型间隙,实现了端到端的类型安全。
4. 实验结果 (Results)
作者在 Apple M4 平台上对 Turn 进行了全面评估(105/105 测试通过):
- **凭证不透明性 **(E1):验证了
Identity 句柄在堆中仅存储提供者名称,原始 Token 从未进入 Turn 值堆或 LLM 接口。
- **置信度传播语义 **(E2):验证了置信度算子满足概率代数规则(如不确定性传播、布尔逻辑的最小值规则)。
- **结构化上下文架构 **(E3):验证了 P0/P1/P2 架构强制实施了首因 - 近因不变量。即使上下文溢出,系统提示(P0)和最新项(P1)始终占据高召回位置,旧项被降级而非丢弃。
- **代理内存隔离与扩展性 **(E4):
- 每个进程的
remember/recall 内存提供 O(1) 平均访问延迟。
- 跨进程完全隔离,无数据泄露。
- 在 1K 到 100K 条目规模下,读写延迟保持平坦。
- **持久执行 **(E5):
- 通过
suspend 实现精确的状态检查点(序列化 VmState)。
- 5000 条目的代理检查点大小约 203KB,往返延迟 <7ms,且状态(PID、堆栈、内存、上下文)完全无损。
- 性能开销:
- 进程创建、消息发送、JSON Schema 验证的开销在微秒级(2-3 µs),比 LLM 网络往返(100ms - 5s)低 3-4 个数量级。
- Turn 的安全原语相对于其保护的推理成本没有可观察的开销。
- 代码复杂度:实现一个投资委员会示例,Turn 仅需 89 行代码,而使用 LangChain 等框架预计需要 350+ 行,且 Turn 将分布式系统架构简化为单进程 Actor 拓扑。
5. 意义与影响 (Significance)
- 范式转变:Turn 证明了代理不仅仅是“循环”,而是具有边界上下文、持久内存、邮箱和生命周期的进程。将约束编码在语言中,使得编译器和运行时能够机械地强制执行这些不变量。
- 消除故障模式:通过语言原语而非库约定,Turn 从根本上消除了未类型化输出、凭证泄露、状态碎片化和上下文丢失等生产环境中的常见故障。
- 安全性与可靠性:基于能力的身份系统和认知类型安全为代理软件提供了比通用语言上的任何库都更强的保证。
- 开源生态:Turn 是开源的(MIT 许可证),提供了编译器、VM、标准库和文档,并正在积极开发 GraphQL、FHIR 和 MCP 等适配器,旨在成为代理软件开发的基础设施。
总结:Turn 通过引入针对代理计算特性的专用语言原语,解决了 LLM 集成中的核心工程挑战,为构建可靠、安全且可扩展的自主代理系统提供了新的语言基础。