原生智能(AI Native)应用开发
虽然 AI 技术已被广泛普及和应用,但原生 AI 应用开发通常需要开发者具备较深的专业知识,并且面临一定的挑战,例如,学习曲线陡峭、集成复杂性等。
常规的 AI 赋能是通过提供 AI 应用框架来实现,但是如果能在语言上提供更简洁的语法表达来降低开发者编写原生 AI 应用的门槛,则能让开发变得更加简单高效。因此仓颉借鉴 web 端和移动端的技术发展,希望通过 DSL 能力来构建类似 AI 领域的声明式范式。
Agent DSL 是我们现在正在畅想和尝试的 AI 原生能力,它是一种专为 AI Agent 开发和多 Agent 协同而设计的领域特定语言,是一种内嵌在仓颉语言中的 DSL(即 eDSL),开发者无需额外学习复杂的库和框架,通过 DSL 可以简单直观地使用 AI 功能。
// Agent的定义
@agent class Planner {
@prompt[pattern=APE] (
action: "帮助用户制定旅行路线",
purpose: "让用户在计划时间内多参观景点并得到充分休息",
expectation: "生成一条合理的旅游景点路线,包括时间、景点、通勤等信息"
)
}
// Agent的使用
let agent = Planner()
let result = agent.chat("我想前往上海")
从代码段不难看出,在仓颉语言中对于 Agent 的声明和使用语法与仓颉本身语法一致,既能享受仓颉的静态检查能力,又不会给开发者带来额外的学习负担,充分发挥仓颉语言的高效编程、安全可靠的优势。
Agent DSL 不仅能让我们提升 AI 应用开发的效率,还能使代码更为准确地对应 AI Agent 的操作、决策过程。我们整体设计希望能达成如下效果:
- 高级抽象:Agent 作为 DSL 中的内置语言抽象,其定义和描述更加自然直观、易于理解和维护。
- 极简多 Agent 协同编程:通过流式符号抽象出不同的 Agent 协同模式,开发者可以轻松地利用多 Agent 协作来开发智能化程度更高的应用。
- 智能化开发工具链:基于 Agent DSL,工具链为开发人员提供从应用开发到性能调测、调优的全方位智能支持。
除了 Agent DSL,原生 AI 应用框架也是我们正在构建的能力,通过语言原生以及框架的配合给开发者带来全场景智能化时代的应用编程新体验。