Nolang 是一套专门面向 AI 时代打造的系统语言,它的核心目标就是重构传统的调用约定与代码形态,跳出现在主流编程语言沿用多年的底层交互范式,更好适配大模型自动生成代码、Agent 调用工具、机器自主编排程序这类新场景,它不再优先服务人类手写长代码,而是把机器之间的调用、消息传递、合约对齐放在第一位,让 AI 生成出来的程序更容易被校验、调度、跨组件互通,同时降低大模型写出语法混乱、接口不匹配代码的概率,在系统底层给 AI 原生执行链路提供一套全新规范。
Nolang 要重构调用约定与代码形态的核心动因
- 传统调用约定是人优先
- Agent 和工具调用缺少原生合约
- 代码形态需要适配模型输出习惯
- 追求机器可解释与可验证
C、Rust 这类成熟语言的调用约定,设计初衷是方便人类手写、编译器优化,参数入栈、寄存器分配、返回值规则都偏向人工开发,对 AI 批量生成、自动调用并不友好。
当前大模型调用函数大多靠字符串描述,很容易出现参数类型错漏、返回格式不统一,Nolang 把调用契约内置进语言层面。
大模型输出代码经常出现边界、分支混乱,如果语言本身的代码形态约束更强,自带结构化,就能减少无效、不可执行的代码片段。
这套语言希望让每一次调用都具备可追踪、可形式化校验的能力,方便后续自动排错、权限管控,适配自治智能体的长期运行需求。
Nolang 在调用约定、代码形态上的关键设计
| 方向 | 设计特点 | 带来的效果 |
|---|---|---|
| 调用约定 | 以消息式调用替代传统栈调用,强契约声明 | 参数、错误、返回结构提前锁定,跨模块调用不容易跑偏 |
| 代码形态 | 高度结构化,弱化自由语法糖 | 降低模型生成非法代码的可能性,方便自动解析 |
| 执行模型 | 原生支持异步、事件驱动 | 和 Agent 多工具串行、并行调用场景天然匹配 |
| 校验能力 | 内置轻量形式检查 | 在运行前就能发现调用签名不匹配、类型冲突 |
如果想要上手了解这套语言,可以遵循的步骤
- 先理解定位差异:区分 Nolang 和通用编程语言,它不是用来替代 Rust、Python,而是面向 AI 调用链路的系统语言。
- 阅读规范文档:重点研读它全新的调用约定,看懂函数契约、消息传递、错误传递规则。
- 尝试简单样例:跑官方最小 Demo,观察它的代码形态,感受和常规编程语言写法上的差别。
- 测试模型生成:用大模型尝试生成符合 Nolang 规范的调用片段,验证它对 AI 代码生成的约束效果。
- 跟踪生态进展:留意编译器、运行时、工具链更新,看它能不能接入现有 Agent、工具框架。
现阶段 Nolang 还属于前沿探索项目,距离大规模生产落地还有很长一段路。它最大的价值,是抛出一个新思路:当代码越来越多由 AI 产出的时候,编程语言、底层调用规则本身,或许也需要跟着换一套设计思路。
【常见问题】
问题 1:Nolang 这套面向 AI 的系统语言,重构调用约定与代码形态是为了取代现有编程语言吗?
回答 1:Nolang 重构调用约定与代码形态,并不是为了取代 Python、Rust 这类语言,目标是补齐 AI 自动调用、Agent 编排场景里缺少的底层规范。
问题 2:Nolang 全新的调用约定,和传统函数调用最大不一样在哪里?
回答 2:Nolang 的调用约定以消息契约为核心,强绑定参数与返回格式,相比传统栈式调用,更适合机器自动发起调用,方便校验接口正确性。
问题 3:Nolang 的代码形态,会不会让人类写代码变得更加麻烦?
回答 3:Nolang 的代码形态优先适配 AI 生成,对人类手写来说约束更强,所以它更适合作为 Agent 底层执行语言,而不是日常手写开发主力语言。
问题 4:Nolang 如果成熟之后,会对大模型工具调用带来哪些改变?
回答 4:如果 Nolang 成熟,依托它重构的调用约定与代码形态,大模型工具调用会拥有更强的类型约束、错误链路,减少参数不匹配、返回结果解析失败的问题。
【参考资料】
[2026-11-14](Nolang:为 AI 重构调用约定的系统语言设计评述)机器之心
[2026-11-14](Nolang 语言规范与底层调用模型解读)HackerNews 技术专栏
[2026-11-12](面向智能体的新型系统语言发展综述)DeepTech
【免责声明】
以上内容属于前沿项目公开资料评述,Nolang 尚处在早期研发阶段,编译器、运行时、生态都未定型;其重构调用约定与代码形态的最终落地效果还有待长期验证,不构成技术选型、生产迁移建议。
