← 文章 / 未分类
typefox 6小时前 · 2026-08-31 23:45:53 · 1 阅读

借助 Langium AI 打造智能体技能与更优评测

自去年宣布 Langium AI 以来,我们一直很享受用它解决各种问题的过程,也因此收获了不少成果。不过,我们已经相当久没有发布重大更新了,所以这次终于把它安排上了!如果你还不熟悉 Langium AI,可以先看看我们的入门博客文章。最近我们还参加了 OCX 2026,并分享了 Langium AI 的相关内容,介绍了过去一年积累的大量经验;在演讲最后,我们也简要提到了本文将详细介绍的内容。

经过近一年的观察,AI、智能体以及整个软件工程领域都发生了很大变化。我们也在不断适应,并将继续向前。尤其值得注意的是,自去年以来,Claude Code、Codex、Gemini、OpenCode 等基于 CLI 的智能体迅速成为关注焦点。我们使用这类工具的方式仍在持续变化,但有一点已经非常明确:它们确实非常有用。

不过,尽管它们有时能带来令人惊叹的结果,我们也见过不少不尽如人意的表现。对于 DSL 来说,这个问题尤其突出,因为其中新颖的语法和语义往往并未出现在 LLM 的训练数据中。正如许多人指出的那样(例如 Microsoft),这仍是一个亟待解决的难题。尽管如此,潜力显而易见,而如何有效引导和驾驭智能体,依然是问题的核心。

有哪些新变化

为了更好地约束这些智能体完成基于 Langium 的工程任务,并评估配备 DSL 能力的智能体,我们对 Langium AI 做了三项重大改进:

  1. 新增了 Langium AI CLI,帮助你快速搭建集成 Langium AI 的 Langium 项目。我们重点优化了速度易用性,让你只需几分钟就能完成评估环境的搭建并运行起来。

  2. 新增一组智能体技能,帮助 AI 充分发挥 CLI 的能力,降低上手门槛,同时也方便用户自行学习和理解这套工具链。

  3. 大幅重构后的 Langium AI Tools 评估套件:既能像测试一样以结构化方式执行评估,又能像 assessment 一样进行语义化评估(这是对现有 package 的调整——这个 package 我们已经维护了一段时间)。

如果你时间不多,但已经产生了兴趣,不妨先打开 Langium AI CLI 链接,快速浏览一下 README。从这里开始,其他部分都可以接着配置。

那么,加入这些功能后,具体有哪些变化?

现在,在自己的 Langium 项目(4.X 及以上版本)中,只需几条命令,就能快速、轻松地配置 langium-ai-tools

# 安装 `lai` CLI
npm install -g langium-ai

# 安装 langium-ai-tools、配置和评估
lai init

# 生成 Langium 项目的映射
lai gen descriptor

# 根据映射生成基础系统提示词
lai gen sysprompt

# 快速执行一次评估检查
lai eval

顺便一提,到目前为止,这些步骤完全不需要不会使用 AI,整个过程都是通过程序完成的。

CLI 的目标是让你以尽可能低的成本快速开始使用。对我们和其他用户来说,配置流程一直是最大的阻力之一,因此我们重点做了优化,把它简化成一系列可以快速执行的命令。

从用户角度看,这只是一个简单的改动,却能让大家更轻松地快速配置并尝试 Langium AI 的功能和工具,无需再花额外时间手动完成各种连接和配置。

Agent Skills

说到节省时间,新增 Agent Skills 的目的,就是进一步降低时间和认知成本。

我们提供了一组 skills,涵盖从 Langium AI 基础知识,到 descriptor、系统提示词、评估,甚至 Langium 本身的引导式优化。这样一来,用户就能让 agent 针对大多数与 LAI 相关的任务提供有效指导,也可以反过来由用户引导 agent,整个过程更加顺畅。

使用起来也很简单:直接下载这些 skills即可。你可以通过 Vercel Labs 发布在 npm 上的 skills package 完成安装。

# 轻松安装我们的全部 skills
npx skills add eclipse-langium/langium-ai

如果你有自己的 skills 管理工具,也可以继续使用,或者手动安装;最终效果都是一样的。

有一类场景特别适合发挥 skills 的作用:你手头已经有一份文档,详细说明了 DSL 应支持哪些使用场景(以及候选评测用例),这些内容可能来自用户反馈或实际项目经验。现在,你可以使用配备了合适 skills(字面意义上的 skills)并能访问 lai CLI 的 agent,将这些场景整合、改写成可直接运行的评测用例。如果前期准备充分,案例基础清晰明确,通常都能得到非常好的结果。我们甚至新增了一个用于构建 DSL 专属 skill 的 skill,让通用 agent 在处理某种语言独有的新颖语法和语义时也能更快上手。实际上,由于这里的大量工作都围绕评测展开,你还可以在 lai 中采用同样的方法,利用自定义 DSL skills 评估本地 agent 的质量。听起来有点“元”,但用起来完全一样。

全新的评测系统

当然,要让评测真正发挥作用,还需要一套完善的配套系统。好在 langium-ai-tools 已经提供了这样的评测系统,只是有时用起来不够顺手。很多时候,它给人的感觉就像是在运行常规测试——只不过我们还需要汇总结果、重复运行多次,并收集每次运行中各项指标的统计数据。我们真正需要的是一个专门的评测工具:使用方式类似于常规测试工具(vitest、mocha、jest 等),但功能专注于评测。这包括对多次运行结果取平均值、支持数据收集、允许进行启发式检查、保留历史记录等。

因此,我们在现有的 langium-ai-tools 中设计了一套全新的评测 API,并将执行逻辑集成到 lai CLI 中,让评测可以轻松启动。现在,你可以像编写测试一样,在 evals 文件夹中定义评测,例如:

// a partial example of an eval for a fictitious DSL that can express a bloom filter
describe('Basic Syntax Generation', () => {
    evaluation('bloom filter test', async (ctx: EvalContext) => {
        const prompt = 'Write a bloom filter in a MyDSL program';
        const response = await generateResponse(prompt, ...);
        // process & return a score plus some metadata
        // return a score between 0.0 - 1.0
        return { score, metadata };
    });
});

如果你觉得这看起来很像 vitest、jest 等工具的用法,那并不是巧合。

我们很喜欢现有测试的组织方式:用清晰的结构编写、整理和运行测试。我们只是希望把同样的体验带到评估中。

当然,市面上还有不少其他评估方案,而且其中一些非常优秀。不过,没有什么能比直接用 TypeScript/JavaScript 做测试更令人满意,因此我们把重点放在了这种使用体验上。

完成这些设置后,就可以通过 lai eval 运行评估并查看结果:

An image of the evaluation results for a small Langium-based language.

系统还会记录历史结果,方便比较不同时间的多次运行结果:

An image of history from several runs across a Langium-based language.

CLI 还提供了更多实用功能。不过仅凭这些,已经足以让 Langium AI 以一种真正有用、也比过去更简洁的方式投入使用。

实际上,这让我们可以快速进行可行性测试,先了解构建面向特定 DSL 的 agent 可能有多大难度,再决定是否投入大量时间和精力。

这不仅让我们的工作更轻松、减少了投入,也让我们对结果更有信心。

秉承 TypeFox 一贯的做事方式,我们相信这项工作最好以开源、透明的方式完成。我们一直很乐意分享成果,也同样为这项成果感到自豪。

总结

如果你想试试 Langium AI,或者只是好奇它究竟是什么,欢迎访问 Langium AI GitHub 页面。 你也可以直接查看其中提供的代理技能,了解我们如何自动化处理各种 LAI 任务。

如果想直接使用相关工具,可以在 npm 上查看 langium-ai-toolslangium-ai CLI 软件包。 我们建议先按照上文介绍安装 lai CLI,再以此为起点完成其他配置。 如果遇到问题,或者时间比较紧,可以使用 lai skill,它会引导你完成整个流程。

希望这些新增内容和改动能为整个 Langium 社区提供帮助。 接下来,我们还会继续分享评估方法以及 Langium AI 的实际应用,进一步拓展这些能力。 在此之前,我们期待看到大家使用这些工具构建出精彩的项目!

作者简介

Benjamin F. Wilson

Ben 是一位经验丰富的工程师,拥有编程语言理论和全栈开发背景。他曾共同创办一家软件公司,也积累了丰富的项目领导经验。他热衷于促进团队协作成功,并解决复杂问题。闲暇时间,他喜欢做 DIY、研究电子设备和打理花园。

阅读更多相关内容

read the article

2026 年 7 月 1 日

文章

Soulaymen Chouri、Emil Krebs

Baukasten:用于构建现代领域专用应用的 UI 工具包

我们推出了 Baukasten:一套用于构建基于 Web、可集成到 IDE 或独立运行的领域专用应用的 UI 工具包。

→阅读文章
read the article

2026 年 6 月 25 日

文章

Mark Sujew

高效语言工程的架构

借助 Fastbelt,我们希望实现前所未有的速度。本文将介绍具体方法。

→阅读文章

2026 年 6 月 25 日

新闻

Mark Sujew

Fastbelt 版本

评论 (0)