去年有个数据挺有意思:GitHub上带"agent"标签的新项目,平均每个需要写2.3万行配置代码才能让多智能体跑起来。不是业务逻辑,是胶水——节点定义、状态机、握手协议。一位做了七年ML infra的工程师在Hacker News吐槽:"我花了80%时间让两个AI互相认识,剩下20%才是让它们干活。"
这个痛点被一个叫aqm的开源项目盯上了。它做的事情听起来简单到可疑:用单个YAML文件描述整个多智能体流程,然后直接跑。没有SDK,没有环境地狱,甚至不需要API key——如果你本地已经配好了Claude或Gemini的CLI。
YAML不是偷懒,是把"代码"变成"配置"
作者的原话很直接:「我想说出'Agent A交给Agent B,质量检查不过就退回A',而不碰任何.py文件。」这背后是产品思维的经典取舍。Python框架确实强大,LangChain、CrewAI、AutoGen都能做复杂编排,但它们默认你享受写代码的过程。
aqm的假设是:大多数场景下,流程结构比代码表达更重要。一个30行的YAML文件能描述的开发-审查-部署流水线,在传统框架里需要300行以上的类定义、状态模式和边条件。更关键的是可移植性——把文件甩给同事,对方秒级复现相同流程,不需要对齐Python版本或解释你的抽象设计。
技术实现上,aqm做了几件事来兑现这个承诺。
多LLM原生:让Claude写代码,Gemini做安全审查
这是第一个被验证的需求。不同模型有不同脾气,Claude在代码生成上更听话,Gemini的长上下文适合安全审计,GPT-4在特定场景下性价比更高。传统做法是为每个模型写适配层,aqm直接在YAML里指定runtime字段。
一个典型配置长这样:developer节点绑claude,handoffs指向reviewer;reviewer绑gemini,gate字段里塞一个LLM判断"这能投产吗",on_approve走deployer,on_reject打回developer。整个循环逻辑可视化程度极高,改流程就是改缩进。
作者提到一个细节:token成本省了55%-85%。不是靠模型降价,是靠上下文策略——只给每个智能体看它必须看的,而不是把整个对话历史塞过去。这5种策略的具体实现没开源,但思路是清晰的:编排层的价值不仅是连线,是懂什么时候不连。
质量门与会话节点:把人的判断逻辑外包给AI
gate字段是aqm的设计亮点。它不是简单的if-else,是内置的LLM评估层。你可以让它判断输出质量、安全风险、甚至风格一致性,然后触发重试或回退。max_retries: 3这种写法,把原本需要写异常处理和状态回滚的代码,压缩成了一行配置。
session节点更激进。它模拟"设计会议"场景:多个智能体来回讨论直到达成共识。这在传统框架里需要手动管理对话轮次、终止条件和共识检测,aqm把它封装成了节点类型。作者没透露具体怎么判断"共识",但暗示用了某种嵌入相似度阈值。
这些功能的共同点是:把"编排"从编程问题降级为配置问题。对于25-40岁的技术从业者,这省下的不是代码量,是认知负荷——你不需要在脑子里维护一个完整的状态机,只需要看YAML的缩进层级。
CLI优先:为什么故意不做SDK
aqm的安装方式是pip install aqm,运行方式是aqm run "Create a login form with JWT"。没有from aqm import AgentChain,没有需要继承的基类。
这个选择有代价。复杂场景下,YAML的表达能力确实不如Python,比如动态生成节点、运行时修改流程、与现有代码库深度集成。作者 acknowledged 这一点,但认为80%的多智能体需求不需要这些灵活性。
更深层的原因是信任模型。YAML文件可以被版本控制、被code review、被非Python背景的PM读懂。一个.py文件里的元编程技巧,三个月后连作者自己都可能看不懂。
社区反馈目前两极。支持者认为这终于让AI编排"像docker-compose一样简单",反对者担心YAML膨胀后会成为新的技术债——毕竟Ansible和Kubernetes都走过这条路。作者的态度是开源求锤:「来break它,来critique它,来告诉我缺什么。」
GitHub仓库刚发布两周,Star数没公开,但Issues里已经有关于条件语法扩展、可视化调试、以及支持本地模型(ollama/lmstudio)的讨论。一个被反复提到的需求是:能不能把YAML编译成Python,在需要时逃逸回代码层?
如果aqm能活到v1.0,它最大的贡献可能不是技术,是重新定义了"简单"的边界。不是功能少,是概念少。不是不能复杂,是复杂得显式。
你现在用的agent框架,最让你想砸键盘的那个功能缺失是什么?
热门跟贴