![]()
去年有個數據在圈子里傳瘋了:一個中等規模的AI Agent項目,平均有40%的代碼是在處理"誰該說話、說什么、說完交給誰"這種臟活。不是業務邏輯,不是模型調優,就是純粹的膠水代碼——定義節點、畫流程圖、維護狀態機。
一位叫Shawn的開發者算過賬:他想讓Claude寫代碼、Gemini做安全審查,結果在LangChain里寫了300多行Python,還沒跑通第一個循環。他當時的原話是:「我只想寫三句話:A交給B,B檢查不過就回A,過了就部署。為什么非要我造一輛坦克去碾一只螞蟻?」
三個月后,他開源了aqm。一個用YAML配置就能跑多Agent工作流的工具,零SDK、零API密鑰(如果你本地已經配好了Claude或Gemini的CLI),一行命令直接執行。
YAML憑什么能省55%的token成本
Shawn的解法聽起來像偷懶,但底層有套精算邏輯。傳統框架把Agent當成"需要被Python代碼組裝的黑盒",aqm把它降級成"配置文件里的一個條目"。
核心差異在上下文策略。aqm內置了5種token優化方案,只給Agent看它必須看的東西——不是把整個對話歷史塞過去,而是按場景裁剪。實測數據是省55%到85%,取決于你的流程復雜度。
這有點像快遞分揀:傳統做法是每個站點把整車貨卸下來再裝上去,aqm做的是按目的地預分揀,中轉站只碰該碰的箱子。
更隱蔽的好處是移植性。一個YAML文件丟給同事,對方有CLI環境就能跑,不用對齊Python版本、不用配虛擬環境、不用解釋"這段繼承自BaseNode的類是干嘛的"。配置即代碼,代碼即文檔。
質量門:讓AI自己當裁判的三種判法
多Agent系統最煩的不是搭建,是失控。A寫完B審,B說改,A改了B又說還差點,循環到第7輪人類介入才發現倆Agent在互相敷衍。
aqm的解法叫Quality Gate,三種觸發模式:
LLM自評:讓第三個模型當裁判,問"這代碼能上線嗎",答案為否就觸發重試或回退,最多可設3次循環上限。
規則硬攔:正則匹配、長度檢查、關鍵詞過濾,適合有明確紅線的情況。
人工兜底:關鍵節點彈窗等人點確認,防止AI在深夜互相甩鍋。
![]()
Shawn的示例里有個典型場景:developer節點用Claude,handoffs指向reviewer;reviewer用Gemini,gate檢查"Is this production-ready?",通過就交給deployer,失敗就回developer,max_retries鎖死在3。整個流程的控制流肉眼可讀,沒有隱式的狀態跳轉。
他還塞了個叫Session Node的東西,專門處理"設計會議"場景——多個Agent來回討論直到達成共識。這通常是多Agent最難寫的部分,因為涉及動態輪次和終止條件判斷,現在變成YAML里的一個節點類型。
30秒能看懂的配置長什么樣
這是Shawn文檔里的完整示例,從代碼生成到部署:
agents:
- id: developer
runtime: claude
system_prompt: "Implement: {{ input }}"
handoffs: [{ to: reviewer }]
- id: reviewer
runtime: gemini
system_prompt: "Review for security: {{ input }}"
gate:
type: llm
![]()
prompt: "Is this production-ready?"
max_retries: 3
handoffs:
- { to: deployer, condition: on_approve }
- { to: developer, condition: on_reject }
執行命令是:aqm run "Create a login form with JWT"
沒有__init__.py,沒有Pydantic模型定義,沒有畫DAG圖。Shawn的假設很直接:80%的Agent編排需求不需要圖靈完備的表達力,YAML的層級結構足夠描述"誰→在什么條件下→交給誰"。
剩下20%的復雜需求?他留了個口子:aqm支持在節點里調用外部腳本,真要寫Python也能塞進去,只是默認假設你不需要。
開源兩周后收到的最狠反饋
aqm在GitHub上掛的是MIT協議,Shawn的README寫得像求罵:「來拆它,來 critique,來告訴我缺了什么。」
他收到的第一條issue是個靈魂拷問:YAML確實省代碼,但調試的時候怎么定位問題?Python至少有stack trace,YAML解析失敗時錯誤信息像天書。
Shawn的回應是加了個--verbose模式,把每個節點的輸入輸出、token消耗、gate判斷結果全吐出來。不是完美的解法,但他優先保的是"寫配置"這個核心體驗,調試工具可以后補。
另一個高頻問題是:為什么不做成Web界面?他的判斷是,目標用戶是"已經用慣了Claude Code和Gemini CLI"的那群人,他們要的不是低代碼平臺,是能把現有CLI工具鏈串起來的膠水——只是這瓶膠水本身不該再用Python寫。
目前aqm的安裝命令是pip install aqm,依賴極簡。Shawn沒提路線圖,只在討論區留了兩個問題:YAML-only是否符合你的工作流?你現在用的Agent框架最缺什么功能?
第二個問題下面,有個回復被點了47個贊:「缺的是'知道自己該什么時候閉嘴'的Agent。」Shawn回了個笑哭表情,沒接話。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.