MALDA:把 LLM 提示词写进语法里的开源编程语言
一款名为 MALDA 的开源语言将提示词、Agent、工具调用纳入语法层,并支持 .NET 转译与浏览器子集编译。
MALDA(Multi Agent Language with Development Automation)是一个面向 AI Agent、Web 应用与持久化工作流的开源编程语言与平台。项目把「自动化」写进了名字的两端——一方面,coding agent 可以直接写 MALDA 代码(仓库内 docs/llm/ 子目录正是为这类读者准备的精简语言包);另一方面,MALDA 程序本身也可以反过来自动化开发工作。
核心设计:提示词即语法
MALDA 最具辨识度的特性是把 LLM 提示词声明为语言一级语法。开发者可以用 prompt 关键字定义一个绑定到 schema 的提示模板;调用时若不加 await,得到的是渲染后的提示文本;加上 await 则实际调用模型并按 schema 校验返回 JSON。例如:
schema块定义结构化输出,如summary: string与issues: string[]prompt codeReview(code, language) -> Review声明系统提示与用户模板validate("Review", …)可在离线状态下校验 JSON 是否符合 schema
这种「提示词即语法」的设计让结构化输出、Agent 编排与工具调用成为编译期或 IDE 层就能检查的形态,而不是运行时的散落字符串。
三大后端与能力矩阵
MALDA 提供三种执行后端,文档明确标出能力差异,而非宣称三者等价:
- interpret:用于迭代运行,直接解释执行
- transpile:转译为 .NET 可执行文件
- compile:将浏览器子集编译为 JavaScript(不含 Agent、HTTP 服务、工作流)
完整能力对照见 docs/spec/backend-capability-matrix.md。工作流部分基于本地 SQLite 的单写者实现,并非集群方案。
AI、Web 与工作流能力
- AI:提示词声明、Agent、工具、MCP 协议支持
- Web:REST 装饰器,以及宿主运行时上的
@PAGE/@AIPAGE - 工作流:本地 SQLite 上的持久化 step / retry / compensate
- 类型系统:注解驱动 IDE 与 LSP,编辑器默认将不匹配标为 Error;
malda compile --mode transpile/publish在存在 Error 时拒绝产出,可加--lenient-types跳过
Agent 自主编码展示
仓库中最值得关注的两个示例据称完全由 coding agent 编写:
Examples/Agents/secondbrain_semantic.malda:约 7,600 行(含共享库)Examples/RalphWiggum/:4,049 行
项目方强调 MALDA 不在任何模型的训练数据中,agent 能写出这些代码得益于 docs/llm/ 里为模型准备的紧凑语言包。仓库同时提供守卫测试、一致性矩阵与可执行的参考手册片段以保证这些声明可被验证。
安装与运行
MALDA 以开源核心形式发布,包含语言运行时、编译器/转译器、IDE、语言服务器、示例、模板与参考手册。安装路径分两条:
- 免克隆方式:从 GitHub Releases 下载自包含 zip(无需额外安装 .NET),解压后 Windows 下可用
malda.bat或启动MaldaDesktop.bat;Linux 提供 CLI - 源码方式:克隆
amaldini/maldalang,使用 .NET 8 SDK 构建;Linux/macOS 需单独构建项目(解决方案包含仅 Windows 的 WPF IDE)
核心示例(first_look.malda、hello_world.malda)无需 API Key、不发起网络请求。启用 AI 功能时,优先使用 OPENROUTER_API_KEY,未设置则回退到本地 GGUF(首次使用会自动从 Hugging Face 下载约 500 MB 的 qwen2.5-0.5b-instruct-q4_k_m.gguf 到本地应用数据目录)。
当前定位与局限
项目自身明确指出 MALDA 「不是什么」:不是 Temporal 集群替代品,不是完整的静态类型系统,也不是三个能力对等的后端。规范层面 Spec Final 1.0 定义语言内核,工具链版本为 1.0.0,publish 是类型边界。这意味着它更适合作为 Agent 编排与快速原型工具,而非生产级工作流引擎或类型严格的服务端语言。
更长篇幅的版本(含已知缺陷与回应)见仓库内 docs/announcement.md。
