AI News HubLIVE
站内改写

一种面向AI且忽视人类友好性的理想语言

Pact是一种专为AI智能体设计的编程语言,它强调机器可读的规范和约束,而非人类友好性。该语言基于S表达式,集成了来源追溯、副作用追踪、完全性保障、延迟预算等特性,并能够编译为Rust代码。其工具链支持从YAML规范生成代码、搭建Web项目,并提供了多种代码生成后端。尽管Pact在服务契约领域表现出色,但它在算法规范方面仍存在局限。

文章情报

工程师进阶

要点

  • Pact是一种面向AI智能体的S表达式语言,注重元数据与形式化规范。
  • 语言特性包括来源追溯、副作用追踪、完全性保障和延迟预算。
  • 它能够编译为Rust代码,并支持Web项目脚手架搭建和YAML规范转换。
  • 适用于API服务契约,但不适合算法或数据结构定义。

为什么重要

这条新闻值得关注,因为Pact是一种面向AI智能体的S表达式语言,注重元数据与形式化规范。

技术影响

可能影响模型选型、推理成本、产品能力和评测基准。

Pact是一种独特的编程语言,其设计目标并非服务人类开发者,而是为人工智能智能体提供一种理想化的表达工具。它摒弃了传统语言对可读性和易用性的追求,转而将机器可解析的元数据、严格的约束和形式化规范置于首位。

Pact语言基于S表达式,每个函数都携带丰富的机器可读元数据,包括来源证明(provenance)、副作用声明、完全性标志、延迟预算以及调用图。例如,一个获取用户信息的函数会明确其依赖的规范引用、测试用例、执行的操作(如数据库读取和HTTP响应)、是否覆盖所有可能情况、预期的响应时间,以及被哪些其他组件调用。这种设计使得AI智能体能够精确理解代码的含义、依赖关系和行为约束。

语言的核心特性包括:来源证明(每个函数和类型都记录存在的原因)、副作用追踪(函数声明其I/O操作)、完全性(标注为:total true的函数必须处理所有分支)、延迟预算(性能约束作为代码的一部分)、依赖图(:called-by实现即时影响分析)、联合返回类型(枚举所有可能结果并映射HTTP状态)以及类型不变量(如最小长度、最大长度和格式检查)。

Pact的编译器采用六阶段流水线:词法分析、解析(生成具体语法树)、降级(转换为类型化抽象语法树)、语义分析(名称解析、副作用检查、模式穷举性检查)和代码生成。编译器自带两种后端:v1后端(默认)生成独立的Rust代码,主要用于检查和文档;v2后端(--runtime)生成依赖pact-runtime库的代码,可直接编译运行,并自动实现序列化、验证、存储交互等功能。

工具链提供了丰富的命令:generate将人类可读的YAML规范转换为Pact格式(.pct)文件;compile将.pct文件编译为Rust源码;scaffold基于.pct文件生成完整的Axum Web项目(包括路由、处理器、HTML模板和Cargo.toml)。路由推断完全基于抽象语法树,无需额外配置。

尽管Pact在服务契约规范领域表现出色——例如CRUD端点、API契约、输入验证和错误枚举——它并不适用于算法规范,如数据结构、排序算法或状态机。这主要是因为语言目前缺乏泛型、递归类型、trait约束和算法模板等特性。

Pact的设计理念反映了对AI编程的深刻思考:在AI agent协作的环境中,代码的可解释性和形式化保证比人类可读性更为关键。通过将规范、约束和来源信息直接嵌入代码,Pact为智能体之间的通信和验证提供了坚实的基石。