# 鸿蒙 Agent DSL vs lambdagent Agent DSL 对比分析

> **鸿蒙 Agent DSL**: HarmonyOS 6 引入，基于仓颉 (Cangjie) 语言，面向端侧原生 AI 应用
> **lambdagent DSL**: 基于 λA 类型化 Lambda 演算，面向服务端 Agent 编排和安全保障
>
> Sources:
> - [HarmonyOS Agent DSL 实战 — 知乎](https://zhuanlan.zhihu.com/p/1921916592708641625)
> - [Agent DSL 旅行规划系统 — DEV Community](https://dev.to/xun_wang_6384a403f9817c2/harmonyos-next-practical-practice-intelligent-travel-planning-system-based-on-agent-dsl-ocm)
> - [Agent DSL 开启原生 AI 开发新篇章 — DEV Community](https://dev.to/xun_wang_6384a403f9817c2/harmonyos-next-innovation-agent-dsl-opens-a-new-chapter-in-native-ai-application-development-4mpd)
> - [HarmonyOS Agent Framework Kit 官方文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/harmony-agent-framework-kit-guide)

---

## 一、定位对比

| 维度 | 鸿蒙 Agent DSL | lambdagent DSL |
|------|---------------|---------------|
| **定位** | 端侧原生 AI 应用开发 | 服务端 Agent 编排 + 静态安全 |
| **目标平台** | HarmonyOS 设备 (手机/IoT) | 服务器 / 本地 / PaaS |
| **宿主语言** | 仓颉 (Cangjie) | Python |
| **理论基础** | 无形式化理论 | λA 类型化 Lambda 演算 (三篇论文) |
| **核心价值** | 降低端侧 AI 开发门槛 | 编译时保证 Agent 组合安全 |
| **LLM 定位** | 端侧推理 (盘古/小模型) | 多 Provider (Cloud + Local) |
| **开源状态** | 华为生态内闭源 | BSL 开源 |

**本质区别**: 鸿蒙 Agent DSL 是**面向应用开发者的 SDK**（怎么快速写出 AI 功能）；lambdagent DSL 是**面向 Agent 工程师的安全工具**（怎么保证 Agent 不出错）。

---

## 1.5、CangjieMagic — 仓颉原生 Agent 开发框架

> 2025年3月开源，首个基于仓颉编程语言原生构建的 LLM Agent 平台
> 项目地址: https://gitcode.com/Cangjie-TPC/CangjieMagic

| 维度 | CangjieMagic |
|------|-------------|
| **定位** | 仓颉原生 LLM Agent 开发框架 |
| **语言** | 仓颉 (Cangjie) — eDSL（嵌入式 DSL） |
| **核心特性** | Agent DSL + MCP 原生支持 + 智能调度引擎 |
| **平台** | HarmonyOS / Windows / macOS / Linux（Q3 计划移动端） |
| **模型** | 多 Provider：OpenAI / Ollama / SiliconFlow / DashScope |
| **协议** | MCP (Model Context Protocol) — 二进制高效传输，延迟降低 ~40% |

### 三大核心技术

1. **Agent DSL**: 声明式 Agent 定义，代码编译为仓颉再由仓颉编译器编译
2. **MCP 通信协议**: 二进制传输 + 自描述 Schema + 多模态（文本/图片/音频）
3. **智能调度引擎**: 自动任务分解 → 最优执行路径生成

### CangjieMagic 代码示例

```cangjie
// 完整 Agent 定义 — @agent 装饰器
@agent[
    model: "deepseek:deepseek-chat",
    executor: "react:5",
    tools: [weatherTool, searchTool],
    memory: true,
    temperature: 0.7
]
class WeatherAssistant {
    @prompt[pattern: APE](
        action: "提供精准的天气查询与出行建议",
        purpose: "帮助用户规划行程并避免天气影响",
        expectation: "输出包含温度、降水概率和建议的结构化回复"
    )

    @tool[description: "获取指定城市的天气数据",
          parameters: { city: "城市名称" }]
    private func queryWeather(city: String): String {
        // 调用天气 API
    }
}
```

```cangjie
// 多 Agent 路由调度
@agent[model: "openai:gpt-4o"]
class PrimaryAgent { }

@agent[model: "ollama:llama3"]
class SecondaryAgent { }

// DispatchAgent 根据任务复杂度自动路由
let routerAgent = DispatchAgent(model: "deepseek:deepseek-chat") <=[
    PrimaryAgent(),
    SecondaryAgent()
]
```

```cangjie
// 多 Agent MCP 通信
agent CustomerService {
  plan HandleRiskInquiry {
    step SendMessage(to: "RiskControlAgent", type: "async",
                     content: {question: user_question})
    step WhenMessageReceived(from: "RiskControlAgent")
         -> GenerateResponse()
  }
}
```

### CangjieMagic vs lambdagent 关键差异

| 维度 | CangjieMagic | lambdagent |
|------|-------------|-----------|
| @agent 装饰器 | ✅ `@agent[model, executor, tools]` | ✅ `Lam(name, prompt)` |
| @prompt 模式 | ✅ APE/ERA/CRISPE 等标准模式 | 自由文本 systemPrompt |
| @tool 声明 | ✅ 内联工具定义 | `Tool(name, fn)` + MCP |
| 多 Agent 路由 | ✅ `DispatchAgent <=[ ]` | `Route` + `Handoff` |
| MCP 支持 | ✅ 原生二进制 MCP | ✅ MCP 2025-11-25 |
| **T-Compose 类型检查** | **❌ 无** | **✅ output(f) <: input(g)** |
| **成本预测** | **❌ 无** | **✅ 分级类型 (p,t,l,m)** |
| **终止性证明** | **❌ 无** | **✅ 定理 5.4** |
| **并行安全** | **❌ 无** | **✅ store independence** |
| **lint 规则** | **❌ 无** | **✅ 26 条** |

**结论**: CangjieMagic 在**开发体验**上比原始 Agent DSL 更完善（@agent/@prompt/@tool 三件套 + MCP + 多模型路由），但仍然**没有形式化安全保障**（类型检查、成本预测、终止性、并行安全）。这正是 lambdagent 的差异化价值。

---

## 二、语法对比

### 鸿蒙 Agent DSL — 装饰器 + 行为描述

```cangjie
@agent class Planner {
    @prompt[pattern=PlanTrip] (
        action: "根据用户需求制定旅行计划",
        purpose: "满足用户旅行期望",
        expectation: "生成包含景点、时间、预算的旅行计划"
    )
    func planTrip(userRequest: String): String {
        let parsed = parseRequest(userRequest)
        let plan = optimizePlan(parsed)
        return plan
    }
}

@agent class TransportAgent {
    @prompt[pattern=BookTransport] (
        action: "根据行程预订交通",
        purpose: "提供最优交通方案",
        expectation: "返回交通预订确认"
    )
    func bookTransport(plan: String): String {
        // ...
    }
}

// 多智能体协作: 顺序管道
let plan = Planner().planTrip("北京3日游")
let transport = TransportAgent().bookTransport(plan)
let hotel = HotelAgent().bookHotel(plan)
```

**特点**:
- `@agent` 装饰器声明智能体类
- `@prompt[pattern=...]` 用 action/purpose/expectation 描述行为
- 函数签名定义输入输出类型
- 多智能体通过函数调用串联

### lambdagent DSL — Lambda 项 + YAML 配置

```python
# Python DSL
planner = Lam("planner", "根据用户需求制定旅行计划")
transport = Lam("transport", "根据行程预订交通")
hotel = Lam("hotel", "根据行程预订酒店")

# 组合: 管道
pipeline = planner >> Pair(transport, hotel)  # 规划 → 并行(交通 + 酒店)

# 带验证
validated = Guard(pipeline, validator=lambda r: "确认" in str(r), retry=2)
```

```yaml
# YAML 配置
agentId: travel-planner
type: chain
chain:
  steps:
    - name: planner
      systemPrompt: "根据用户需求制定旅行计划"
    - name: transport-hotel
      type: parallel
      agents:
        - { name: transport, systemPrompt: "预订交通" }
        - { name: hotel, systemPrompt: "预订酒店" }

runtime:
  engine: cek
  costBudget: 5.00
```

**特点**:
- `Lam` 是 Lambda 抽象（LLM 调用）
- `>>` 是函数组合（管道）
- `Pair` 是并行对
- `Guard` 是输出验证
- YAML 是声明式编排（可选）
- 每个构造有对应的 λA 形式化定义

---

## 三、核心机制逐项对比

### 3.1 Agent 定义

| | 鸿蒙 Agent DSL | lambdagent DSL |
|--|---------------|---------------|
| 定义方式 | `@agent class` + `@prompt[pattern]` | `Lam(name, prompt)` 或 YAML |
| 行为描述 | action/purpose/expectation 三元组 | systemPrompt 自由文本 |
| 强类型 | 仓颉静态类型 (`String → String`) | Paper III 类型系统 (`Str →^{llm} Str`) |
| 效果标注 | 无 | `llm(m) / io / state(s) / pure` |
| 编译检查 | 仓颉编译器基础类型检查 | **T-Compose + 26 条 lint + 成本预测** |

**鸿蒙优势**: `@prompt[pattern]` 的 action/purpose/expectation 三元组比自由文本 prompt 更结构化，可以被 IDE 解析。

**lambdagent 优势**: 有效果系统（区分 `llm/io/state/pure`），有成本分级，有 26 条 lint 规则。鸿蒙 Agent DSL 没有这些。

### 3.2 多智能体协作

| | 鸿蒙 Agent DSL | lambdagent DSL |
|--|---------------|---------------|
| 顺序 | 函数调用链 | `Compose (>>)` + `pipeline` Pattern |
| **并行** | **未公开** | **`Pair` / `Par` / `AsyncPar` + 汇合定理** |
| **路由** | **未公开** | **`Route` (case 分派) + `Handoff` (动态委托)** |
| **循环** | **未公开** | **`Loop` (Y 组合子) + 终止性定理** |
| **审查** | **未公开** | **`Guard` (验证重试) + `review` Pattern** |
| GroupChat | 未公开 | `GroupChat` (π-演算 N 智能体讨论) |
| 通信 | 未公开 | `Channel + Send + Receive` (π-演算) |

**鸿蒙目前只展示了顺序管道**。lambdagent 有 11 个核心构造 + 5 个多智能体构造 + 6 个协作模式，覆盖面远超鸿蒙。

### 3.3 工具调用

| | 鸿蒙 Agent DSL | lambdagent DSL |
|--|---------------|---------------|
| 定义方式 | 类方法 (`func bookTransport(...)`) | `Tool(name, fn)` |
| 协议 | 未公开 | **MCP (Model Context Protocol)** |
| 输入验证 | 仓颉类型检查 | `ValidatedTool` + JSON Schema |
| 权限控制 | 未公开 | `GatedTool` + `ToolGateway` (60+ 危险命令检测) |
| 内置工具数 | 未公开 | **52 个** |

### 3.4 安全保障

| | 鸿蒙 Agent DSL | lambdagent DSL |
|--|---------------|---------------|
| 编译时类型检查 | 仓颉基础类型 | **T-Compose: output(f) <: input(g)** |
| 编译时成本预测 | **无** | **分级类型 (p, t, l, m)** |
| 终止性保证 | **无** | **定理 5.4: fix_n 在 n 步终止** |
| 并行安全 | **无** | **命题 30: Pair 汇合 + store independence** |
| lint 规则 | **无** | **26 条结构规则** |
| 效果隔离 | **无** | **ProductionHandler / TestHandler / TraceHandler** |
| 成本熔断 | **无** | **CEK Yield 逐步监控** |

**这是最大的差距**: 鸿蒙 Agent DSL 没有任何形式化安全保障。lambdagent 的整个类型系统、成本预测、终止性证明，都是鸿蒙不具备的。

### 3.5 运行时

| | 鸿蒙 Agent DSL | lambdagent DSL |
|--|---------------|---------------|
| 运行位置 | **端侧 (手机/IoT 设备)** | 服务端 / 本地 |
| 执行引擎 | HarmonyOS Agent Runtime | **双引擎 (Recursive / CEK / Adaptive)** |
| 暂停/恢复 | 未公开 | **CEK 状态序列化** |
| 沙箱 | HarmonyOS 系统沙箱 | 进程隔离 + Git Worktree |
| 设备协同 | **分布式能力 (跨设备迁移)** | 无 |
| IoT 集成 | **原生支持 (传感器/设备控制)** | 通过 MCP/Tool 间接支持 |

**鸿蒙优势**: 端侧运行 + 分布式设备协同 + IoT 原生支持。这是鸿蒙 Agent DSL 最核心的差异化——在手机和 IoT 设备上跑 Agent，lambdagent 做不到。

---

## 四、本质差异

```
鸿蒙 Agent DSL:
  面向: 应用开发者 (写 HarmonyOS App)
  问题: 怎么在手机/IoT 上快速写出 AI 功能
  方法: 装饰器 + 行为描述 → 降低门槛
  生态: HarmonyOS 独占，绑定盘古模型
  类比: 像 SwiftUI 的 AI 版 (声明式 UI → 声明式 Agent)

lambdagent DSL:
  面向: Agent 工程师 (构建/运维 Agent 系统)
  问题: 怎么保证 Agent 组合不出错、不超支、能终止
  方法: 类型系统 + 成本预测 + 终止性证明
  生态: 跨平台、多 LLM Provider、MCP 协议
  类比: 像 TypeScript (给 Agent 加类型安全)
```

---

## 五、可以互相学习的

### 从鸿蒙学

| 鸿蒙的做法 | lambdagent 可以借鉴 |
|-----------|-------------------|
| `@prompt[pattern]` 结构化行为描述 | 当前 systemPrompt 是自由文本，可以加 action/purpose/expectation 结构 |
| IDE 自动生成 Agent 代码 | 可以做 VS Code 插件从注释生成 YAML |
| 端侧运行 | 暂不需要（不同赛道） |
| IoT Agent (传感器 → 决策 → 设备控制) | 通过 MCP 工具可以间接支持 |

### 鸿蒙可以从 lambdagent 学

| lambdagent 的做法 | 鸿蒙目前缺少 |
|------------------|------------|
| T-Compose 类型检查 | Agent 组合的编译时验证 |
| 成本预测 | Agent 执行的 token/延迟/费用上界 |
| 终止性定理 | 循环 Agent 的停机保证 |
| 并行安全 | 多 Agent 并行的 store independence |
| 6 个 Pattern | 可复用的协作模式库 |
| CEK Machine | 暂停/恢复/成本熔断 |
| LLM Wiki | 知识编译而非 RAG |
| 跨框架 lint | 检查其他框架的 Agent 配置 |

---

## 六、竞争关系分析

**结论: 不是竞品，是不同赛道。**

```
鸿蒙 Agent DSL 的赛道:
  手机 App + IoT 设备 + 华为生态
  → 在手机上跑一个能控制空调的 Agent
  → 在手表上跑一个能推荐路线的 Agent
  → 华为设备之间协同（手机 → 大屏 → 音箱）

lambdagent DSL 的赛道:
  服务端 + 企业级 + 跨平台
  → 在服务器上跑一个处理 1326 份法规的 Wiki Agent
  → 在 CI/CD 里检查 100 个 Agent 配置的类型安全
  → 给 LangChain/CrewAI/AutoGen 做安全审计

两者的交集:
  几乎为零。鸿蒙面向 C 端设备，lambdagent 面向 B 端服务。
```

但如果鸿蒙 Agent DSL 未来扩展到服务端（企业级 Agent 编排），那 lambdagent 的类型系统和安全保障就是差异化壁垒——华为可以做运行平台，但形式化证明不是一朝一夕能补的。

---

## 七、一句话总结

**鸿蒙 Agent DSL 是"怎么在手机上快速写 AI"，lambdagent DSL 是"怎么保证 Agent 不出错"。** 一个降低开发门槛（让更多人能写 Agent），一个提高安全底线（让写出来的 Agent 可靠）。目前不在同一个赛道竞争，但共同验证了一个趋势：**Agent 需要自己的 DSL，不能靠通用编程语言硬写**。

Sources:
- [HarmonyOS Agent DSL 实战 — 知乎](https://zhuanlan.zhihu.com/p/1921916592708641625)
- [Agent DSL 旅行规划 — DEV Community](https://dev.to/xun_wang_6384a403f9817c2/harmonyos-next-practical-practice-intelligent-travel-planning-system-based-on-agent-dsl-ocm)
- [Agent DSL 原生 AI 开发 — DEV Community](https://dev.to/xun_wang_6384a403f9817c2/harmonyos-next-innovation-agent-dsl-opens-a-new-chapter-in-native-ai-application-development-4mpd)
- [HarmonyOS Agent Framework Kit](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/harmony-agent-framework-kit-guide)
- [鸿蒙智能体框架解读 — AI 工具集](https://ai-bot.cn/what-is-hmaf/)
