AI写代码最大的问题是"写出来但跑不通"——在鸿蒙这个新兴生态里尤其明显:大模型没学过仓颉语法,拿ArkTS当TypeScript写,生成的全是编译错误。白皮书直面了这个问题,给出的答案不是一个更聪明的AI插件,而是一套从代码生成到自动验证的全链路Agentic闭环。而仓颉的Agent DSL,则把AI Agent的开发从"调SDK"变成了"写配置"——这种语言级的智能化支持,是白皮书里最具前瞻性的信号。
鸿蒙AI辅助开发的挑战
语料匮乏导致生成质量不足
白皮书披露了一个关键数据:ArkTS公开可用语料体量不足TypeScript的百分之一。这导致大模型在代码生成时极易默认沿用TypeScript语法逻辑,而TypeScript中大量与ArkTS规范不兼容的语法特性,成为AI Coding场景下ArkTS开发现语法错误的核心诱因。
仓颉也面临类似困境——虽然语法与其他静态语言相近,但公开可用语料同样不足。短期内无法完成ArkTS、仓颉语料库2至3倍量级的快速扩容,通过工程化路径优化代码生成精度是必要措施。
AI辅助开发的三大痛点
经调研广大鸿蒙生态开发者的实际体验,三类痛点最为突出:代码生成环节问题较多,尤以语法错误最为突出,致使项目无法正常构建,需多轮人机协同修改,部分缺陷无法通过AI自主修复;程序构建完成并部署至终端设备或模拟器后,频繁出现界面展示错乱、交互逻辑异常等缺陷,人工测试核验重复性强、耗时久;自测试的问题整改依赖开发者手动输入自然语言指令引导AI修复,持续陷入编码改错、编译打包、真机测试的低效迭代流程。
"开发者初衷本是借助AI提升开发效率,可当前在通用AI辅助工具上的开发流断点,反而拉长整体开发周期。"白皮书对现状的判断相当直白。
全流程Agentic开发闭环
理想开发模式
白皮书描绘的理想开发模式是自动化闭环:开发者提交开发需求后,AI自动完成代码生成;联动语法校验工具智能排查并修复语法问题;无误代码可自动编译构建HAP安装包,同步推送至模拟器完成部署;自动开展功能校验与兼容性测试;检测出异常问题即刻反向回流至代码生成与修改环节启动迭代优化。经过多轮自动化自验证与迭代修正,直至精准达成特性的开发目标。
"实现开发者仅需明确业务需求,即可交由AI自主闭环完成代码编写、语法纠错、模拟器/真机自验证、问题整改等全链路工作,直至需求开发完成,最终由开发者确认验收。"
ArkTS未来AI能力演进
ArkTS将通过完善语法规则与知识库建设进一步提升AI Agent在代码编写中的效率和准确性。提供更结构化的编译过程与运行结果信息,帮助AI Agent精准定位问题并及时修复错误。增强编译系统的性能,提升全量和增量编译的速度,降低AI在迭代开发周期中的等待时间和开销。
覆盖并发编程、模块加载、代码执行优化等领域的高性能代码开发技能,支持AI编写出性能优越的应用。白皮书还提到将引入基于AI的自动化改造模型,涉及Sendable、LazyImport优化、模块TopLevel代码优化等创新点,显著降低高性能应用的开发成本。
仓颉Agent DSL——语言原生的智能体编程
Agent核心要素的语言级支持
仓颉Agent DSL将现代AI Agent开发的四大核心要素提升为语言级支持。模型层面,提供统一的模型调用方式,屏蔽不同模型接入时的差异。提示词层面,将传统的文本提示词提升为语言一等公民,开发者可以结构化地定义Agent的行为模式、目标与预期输出。规划层面,支持声明式定义Agent的执行流程。工具层面,支持无缝接入外部工具与服务,包括仓颉模块和现有Agent工具生态(如MCP服务)。
"鸿蒙日程助理Agent"的完整定义展示了这一能力:
```cangjie
@agent[
model: "deepseek:deepseek-v3.2",
description: "鸿蒙应用内的智能日程助理",
tools: [scheduleToolManager],
executor: "react"
]
class ScheduleAssistant {
@prompt("你是一个日程助理,负责理解用户需求,并生成规范的日程处理结果。")
}
let assistant = ScheduleAssistant()
let result = assistant.run("明天上午10点提醒我参加项目评审")
```
@agent声明式指定Agent配置,@prompt定义行为指令,assistant.run()执行智能体任务。从手写SDK调用到声明式配置,开发复杂度显著降低。
多Agent协同与MCP生态
仓颉Agent DSL支持三种多Agent协同模式:线性协同适用于阶段化处理流程——数据依次经过多个Agent的流水线处理;主从式协同适用于层次化组织结构——主Agent负责任务分解与结果整合,子Agent专注于特定子任务;自由协同适用于基于共享上下文的松耦合交互——多个Agent可以自由发言、响应事件,并在统一上下文中交换信息。
Agent DSL兼容MCP(Model Context Protocol)生态,开发者可以复用现有Agent工具生态中的大量资源和工具。这使仓颉Agent DSL不是一个封闭的系统,而是可以接入更广泛AI Agent生态的开放平台。
安全与输出可控
仓颉Agent DSL通过语言类型机制对Agent输出进行结构化约束。类型化输出通过类型系统定义Agent输出Schema,确保结构稳定、字段明确;约束与校验支持对输出进行类型约束与校验,避免不符合预期的数据进入后续流程;语义控制结合DSL能力,对输出内容进行范围、枚举等语义级约束。
这三点设计使Agent输出结果可预测、可验证与可治理。白皮书将其定位为"为高可信智能应用提供基础保障"——当AI Agent被用于金融、政务、企业办公等场景时,输出的可控性是不可妥协的底线。
AI辅助开发的未来方向
Agentic开发与开发者角色的演变
鸿蒙全流程Agentic开发的最终目标是:开发者从"写代码-调试-修复"的循环中解放出来,转变为"定义需求-验收结果"的更高层次角色。AI Agent负责从代码生成到验证修复的全链路执行,开发者只需要明确业务需求并最终确认验收。
这不仅是效率的提升,更是软件开发范式的转变。白皮书将这一目标表述为"让应用全流程Agentic智能开发的理想模式成为现实"。
仓颉Agent DSL的演进方向
仓颉Agent DSL的未来演进方向包括:在Agent执行层建立更为严密的确定性边界,用更加结构化的校验-失败处理约束大模型的概率式推断;探索事务语义等技术,用于语言原生支持非确定性概率结果处理;探索语言原生支持声明式、结构化的需求、规则、知识描述能力;针对大模型的输入/输出构建自动化的格式与语义的形式化校验。
这些探索指向一个更深远的方向:当大模型的不确定性成为开发生态的一部分时,编程语言本身应该如何提供原生的支持机制,而不仅仅是依赖外部的SDK和框架。