论文信息
论文标题: ADL: A Declarative Language for Agent-Based Chatbots
论文作者: Sirui Zeng, Xifeng Yan - UCSB
论文链接: https://arxiv.org/abs/2504.14787
项目链接: https://github.com/Mica-labs/MICA
项目文档: https://mica-labs.github.io/
论文关键词: Multi-Agent System, Task-Oriented Dialogue, Declarative programming
研究背景
目前的智能体(Agent)框架(如 AutoGen、LangGraph、CrewAI、Swarm 等)在构建复杂任务时虽然灵活,但存在以下局限性 :
- 代码耦合严重:智能体的声明往往与复杂的 Python 代码交织在一起,导致维护和调试困难 。
- 缺乏抽象:开发者需要关注底层的执行逻辑,而非业务逻辑本身 。对非专业开发者不友好。
- 交互表达不直观:在传统编程框架中,对话的交互性和复杂的跳转逻辑难以清晰呈现 。
所以能否设计一种:
- 专注"Agent 是什么、Agent 如何交互"
- 而不是"Agent 如何被实现与调度"
- 并且能天然支持 LLM、自然语言逻辑与系统级优化
的声明式 Agent 编程语言?
这正是 ADL(Agent Declarative Language) 的研究目标。
ADL 的核心设计理念
ADL 的核心目标是实现逻辑与执行的分离 Separation of Logic and Optimization 。其设计遵循三大原则:
- 声明式与模块化(Declarative & Modular): 定义"智能体是什么"及其"如何交互",而非"如何实现" 。
- 开发者描述 Agent 的能力与交互关系
- 不关心底层 MAS 如何调度、并行、合并或优化
- 自然语言编程(Natural Language Programming): 广泛使用自然语言来简化智能体的配置、约束和逻辑定义 。
- 条件判断、策略、退出规则允许使用自然语言
- 由 LLM 负责"语义判定"
- 逻辑与优化解耦(Separation of Logic and Optimization): 开发者只需关注输出,由底层多智能体系统(如 MICA)负责性能优化(如 Token 成本和延迟控制) 。
- 同一 ADL 程序,可在不同 MAS 上运行
- 性能提升来自 MAS/LLM 的进化,而非代码重写
ADL 的技术细节
ADL 的整体形态
- YAML 风格的声明式语言
- 一个 ADL 程序 = 一组 Agent 定义
- 必须包含一个 main agent 作为入口
ADL 的四大智能体类型
ADL 定义了四种基本的智能体类型,以支持不同的业务场景 :
| Agent 类型 | 功能定位 | 特点 |
|---|---|---|
| KB Agent | 检索 / QA | 原子性,不能调用其他 Agent |
| LLM Agent | 业务逻辑 / 推理 | Prompt + 工具调用 |
| Flow Agent | 严格流程控制 | 类 DSL,接近传统程序 |
| Ensemble Agent | Agent 调度与选择 | 类 orchestrator / triage |
此外,安全护栏智能体 (Guardrail Agent) 可作为 LLM 智能体集成在 Ensemble Agent 中,用于检测不当输入或输出 。

一个直观示例:书店客服机器人
这个例子可以看出 ADL 的几大特点。几乎是自然语言编程,及其便于阅读,并且与 Swarm 相比更易开发。

交互语义显式化(Interactive Syntax)
对比 AutoGen 中的 Python while-loop:

在 ADL 中被显式写为:

优点:
- 对话轮次、交互节奏一目了然
- 更适合 LLM 理解整体流程
自然语言条件(Natural Language Condition)
使用 CrewAI 编写的设计条件判断的代码:

使用 ADL 进行简化的代码:

- 不需要做 intent classifier,正则匹配,手写 if-else
- 直接把意图识别外包给 LLM
自然语言策略(Policy as NL)

- description:Agent 能做什么
- fallback:失败怎么办
- exit:何时终止
系统架构与优化
论文同步推出了开源系统 MICA,用于解释和执行 ADL 程序 。
- 编排方法优化:论文对比了五种编排方式(Merging, First-Success, Best-of-N, Proactive, Autonomous) 。
- 实验发现:Merging(合并) 方法在延迟和 Token 成本上表现最优(通过将防御栏与后续智能体合并减少 API 调用) ;而 Best-of-N 虽然质量最高,但成本也最高 。
案例研究:维护性与调试辅助
- 维护性 (Maintainability): 在书店机器人案例中,向 ADL 添加新逻辑(如折扣查询)仅需几行声明式代码 ,而像 Swarm 这样的框架则需要修改复杂的 Python 函数和意图分类器 。
- 调试辅助 (Debugging Assistance): 由于 ADL 具有更清晰的语义,LLM 能够更准确地对 ADL 代码进行静态分析 。实验证明,在检测"死循环"漏洞时,LLM 对 ADL 代码的检测准确度显著高于包含 Python 逻辑的 Swarm 代码 。

总结
ADL 通过解耦智能体声明与 Python 编程,显著提升了 ToD 系统的可读性、可维护性和调试效率 。具体来说:
- ADL 的自然语言显式编程相较于 Python + 各种多智能体框架 + prompt 而言,更易被 开发者阅读,更简洁,且更易被LLM 理解,从这一角度出发,我们可能可以基于此开发一些更加上层的编程方式,区别于现在的 agent workflow 的各种编程方式,使其更易深入各行各业。
- 声明式定义 仍需要 与 LLM 的基础能力配套设计。尽管是更上层的设计,但是若是没有配套的性能强化设计仍无法很好的使用。
- 该设计下的 智能体的工具调度 和 memory 设计并没有很具体的说明,仍然有很大的空间。
个人认为:ADL 并不是要"取代"现有 Agent 框架,而是为 LLM 时代的 Agent 系统提供一个"更利于理解、维护与分析的中间表示层"。