Agen:RWKV 作者设计的极简 Agent 状态机语言

> 来源: github.com/BlinkDL/Agen

> 作者: BlinkDL(Bo Peng,RWKV 作者)

> 数据集: imbue2025/Agen-codes-1k

> 研究时间: 2026-03-30

🎯 一句话版本

Agen 是 RWKV 作者 BlinkDL 设计的一种极简编程语言,专门用来写 agent 循环和状态机——用规则匹配驱动状态转换,UTF-8 符号做变量绑定,让 AI 更容易生成和理解 agent 逻辑。

🏗️ 设计哲学

Agen 的核心假设:agent 的逻辑本质上是状态机——检查状态 → 匹配规则 → 执行动作 → 回到检查。

Python 写这种逻辑需要 for + if/continue + 手动状态管理。Agen 把它提炼成两步循环:


Step 1: 找到第一个匹配的规则
        ├── 没有匹配 → 停止
        └── 超过 step_limit → 报错

Step 2: 执行代码块 → 回到 Step 1

📝 语法速览

语法含义
`(a=b)`规则:当 a 等于 b 时匹配
`(a=b)➜`规则 + 立即转换
`■ ◆ ▲ ▼ ◀ ▶`Slots(变量绑定占位符)
`a.b`dict 取值或属性访问
`{...}`显式表达式 / map 字面量
`a=b, c=d`多赋值
`Ø`null

UTF-8 符号是刻意的设计——给 AI 写的语言,不需要照顾人类的键盘习惯

🎮 示例:NPC 日程模拟


(npc=Ø)
 npc={name:emma, location:home}
 agenda=[wake_up, open_stall, close_stall]
 log=[], i=0

(task=Ø, i≠{len(agenda)}) ➜ task={agenda.{i}}, i+=1

(npc=■, ■.location=◆, ■.name=▲)
 (task=wake_up)
  log+=[{time:dawn, scene:◆, text:▲ wakes up}]
  task=Ø
 (task=open_stall)
  ◆=market_square
  log+=[{time:morning, scene:◆, text:▲ opens the stall}]
  task=Ø

等效 Python 约 20 行 for/if/continue。Agen 版更紧凑,状态转换更直观。

🤖 核心示例:Claude Code 风格的 Agent Loop

s01.agen 实现了一个简化版 Claude Code 核心循环:


(messages=■, response=◆)
 (■=Ø) ➜ ■=[{role:user, content:{query}}], phase=model

 (phase=model)
  (◆=Ø) ➜ ◆={QUERY(messages=■)}
  ■+=[{role:assistant, content:{◆.content}}]
  (◆.stop_reason=tool_use) ➜ phase=tool, i=0, results=[]
  phase=done

 (phase=tool)
  (i≠{len(◆.content)}, ◆.content.{i}=▲, output=▼)
   (▲.type≠tool_use) ➜ i+=1
   (▼=Ø) ➜ ▼={BASH(command={▲.input.command})}
   results+=[{type:tool_result, tool_use_id:{▲.id}, content:▼}]
   ▼=Ø, i+=1
  ■+=[{role:user, content:{results}}]
  phase=model, ◆=Ø

三个状态:modeltooldone,规则匹配驱动转换。参考了 learn-claude-code 项目。

增强版 s03.agen 加了 todo 提醒:每 3 轮工具调用没更新 todo 就自动插入提醒——用一个 rounds_since_todo 计数器和一条规则实现。

📊 与 Python 的对比

维度AgenPython
**代码量**~1/3基准
**状态转换**规则匹配,隐式 continueif/continue,显式控制流
**变量绑定**Slots(■ ◆ ▲),模式匹配手动赋值
**AI 可读性**高(结构化,紧凑)中(冗余但通用)
**人类可读性**低(需学符号系统)
**生态**新生(1k 数据集)完整

🔍 作者背景

BlinkDL = Bo Peng(彭博),中国 AI 开源社区的重要人物:

他做 Agen 的动机和 RWKV 一致:为 AI 优化,而不是为人类习惯优化。RWKV 为 AI 推理优化了架构(线性注意力),Agen 为 AI 编程优化了语法(状态机 + UTF-8 符号)。

💡 与我们的关联

1. Agent 循环的本质确实是状态机

我们的 OpenClaw agent 工作流(消息到达 → LLM 处理 → 工具调用 → 结果返回 → 继续)本质上就是一个状态机。Agen 把这种模式显式化了。

2. 与 Lobster 工作流语言的方向一致

之前讨论过"把确定性编排抽取到 Lobster(工作流引擎),保留 LLM 做创造性工作"。Agen 的思路类似——用一种简洁的 DSL 描述 agent 的控制流,而不是全部扔给 LLM。

3. "给 AI 写的语言"是一个趋势

jj(给 agent 优化的版本控制)→ Agen(给 agent 优化的编程语言)→ 工具链正在围绕"AI 是主要用户"重新设计。

4. 但实用性存疑

5. 数据集的价值

Agen-codes-1k 的 1000 个 agent 循环样本,对理解 agent 编程模式有参考价值——即使不用 Agen 语言本身。

📊 评分

维度评分(/10)
创新性8.5 — "给 AI 设计的编程语言"方向新颖
技术深度7.0 — 语言设计清晰但简单,没有类型系统/错误处理
实用性5.5 — 生态太早期,1k 数据集,实际采用门槛高
作者背景9.0 — RWKV 作者,有持续产出的记录
与我们的相关度6.0 — 概念有启发,但我们不太可能切换到 Agen
**综合****7.0**

报告由深度研究助手自动生成 | 2026-03-30

来源: GitHub / HuggingFace / RWKV