
給多智能體流水線裝上 if-else 和 whileAgno Workflow 工作流編排入門【免費下載鏈接】agnoBuild, run, and manage agent platforms.項目地址: https://gitcode.com/GitHub_Trending/ag/agno想讓研究 Agent 查完資料后只有內(nèi)容涉及具體數(shù)據(jù)時才調(diào)起事實核查 Agent否則直接進寫作——這個 if-else 在代碼里到底怎么寫Agno Workflow 就是為此而生的一個用普通 Python 代碼描述多智能體流水線的引擎條件、循環(huán)、并行、路由全是可編程的結(jié)構(gòu)而不是畫在流程圖上的虛線。 把任務(wù)串成一條線順序步驟怎么跑Workflow 接收輸入后按列表順序逐個執(zhí)行 steps 里的成員。Step 的身份很寬松Agent、Team、普通 Python 函數(shù)都能直接入列函數(shù)只需讀 StepInput、返回 StepOutput就能和 Agent 平起平坐地參與工作流編排。銜接靠的是 previous_step_content上一步產(chǎn)出的內(nèi)容自動流入下一步研究 Agent 寫下的素材不用手動傳遞寫作 Agent 直接就能讀到。最小例子看 sequence_of_steps.py研究→寫作兩步就是一條完整的 Agno 工作流引擎實現(xiàn)本身在 workflow.py。 給流水線加 if-elseCondition 與 Router 的分工Condition 像是流水線上的門衛(wèi)手里攥著 evaluator 這把尺返回 True內(nèi)部 steps 照常執(zhí)行返回 False整段被跳過流程直接走到下一站。經(jīng)典用法是事實核查門禁——摘要里出現(xiàn)數(shù)據(jù)顯示百分比這類事實性措辭才放行事實核查 Agent否則省掉這次調(diào)用參考 condition_basic.py。想給攔截時留個后路就配上 else_steps不滿足條件時改走另一小段。Router 更像分揀臺給它一組 choices 候選步驟selector 函數(shù)按輸入內(nèi)容動態(tài)挑出要走的一條或多條路。比如主題命中 tech、AI、startup 就派 HackerNews 研究員否則交給通用網(wǎng)頁研究員兩條路最后都匯回發(fā)布步驟見 router_basic.py。兩者別混Condition 回答做不做是二值判斷Router 回答派誰去做是多路分發(fā)。流程需要攔截用前者需要分流用后者。 結(jié)果不夠好就再來一遍Agno 循環(huán)執(zhí)行Agno Workflow 循環(huán)結(jié)構(gòu)steps 反復(fù)執(zhí)行end_condition 決定退出時機單次生成的質(zhì)量看運氣Loop 把這件事交給重試。它包一組步驟反復(fù)執(zhí)行每輪結(jié)束后調(diào)用 end_condition返回 True 就退出返回 False 就接著下一輪。例子里兩個研究步驟被圈進 Loop評估邏輯是輸出不足 200 字符就重跑夠長了才放行給創(chuàng)作環(huán)節(jié)見 loop_basic.py。光有 end_condition 還不夠穩(wěn)max_iterations 是配套的保險絲評估函數(shù)萬一失靈最多跑 3 輪也會強制收手。兩個參數(shù)配合才是質(zhì)量與成本的雙保險。還有一個累積式變體開啟迭代累積后每輪輸出會喂給下一輪當(dāng)輸入研究內(nèi)容逐輪疊加而不是每輪從頭重來。? 無依賴的任務(wù)一起跑Agno 并行工作流兩個互不相干的研究任務(wù)串行著跑純屬浪費。Parallel 同時發(fā)起它收到的所有步驟等全部完成后自動合并結(jié)果再交給下游。前提是分支之間沒有數(shù)據(jù)依賴A 分支的輸入不能來自 B 分支的產(chǎn)出否則還是老老實實排成順序。parallel_basic.py 里研究 HackerNews和研究網(wǎng)頁并行跑完合并后的素材一次性交給寫作和審閱。這套結(jié)構(gòu)還能繼續(xù)疊加控制邏輯分支內(nèi)部可以塞 Condition比如只讓某一類輸入觸發(fā)某個分支Loop 里也可以放 Parallel失敗的路徑整組重來組合玩法參考 parallel_with_condition.py。?? 少寫代碼的兩個捷徑CEL 表達式與全局叫停手寫 evaluator 函數(shù)有點啰嗦時CEL 表達式可以直接頂替一行 evaluatorinput.contains(urgent) 就能完成輸入含 urgent 走緊急通道的判斷框架識別出這是表達式而非 Python 可調(diào)用對象自行解析執(zhí)行。表達式里能引用 input、previous_step、session_state 等上下文條件、循環(huán)退出、路由選擇統(tǒng)統(tǒng)可以聲明式配置。規(guī)則越簡單越適合 CEL邏輯復(fù)雜了再換回函數(shù)。示例在 cel_basic.py需先 pip install cel-python。另一個捷徑是提前終止步驟返回 StepOutput 時把 stop 置 True剩余步驟全部跳過工作流以 Early Stopped 收尾。它和 Condition 跳過是兩碼事——前者叫停整條線后者只是繞過一段路。early_stopping 目錄里有安全掃描攔截部署的例子掃出 VULNERABLE 就直接收工??刂平Y(jié)構(gòu)適用場景關(guān)鍵參數(shù)Steps順序接力stepsCondition二值攔截evaluator、else_stepsRouter多路分流choices、selectorLoop重試打磨end_condition、max_iterationsParallel無依賴并發(fā)steps先跑通 01_basic_workflows/ 里的順序步驟再往線上加 Condition、Loop、Parallel對應(yīng)子目錄分別是 02_conditional_execution/、03_loop_execution/、04_parallel_execution/。四種結(jié)構(gòu)疊加完畢你的多智能體流水線就有了剎車和方向盤——剩下的只是決定每一步派誰上場?!久赓M下載鏈接】agnoBuild, run, and manage agent platforms.項目地址: https://gitcode.com/GitHub_Trending/ag/agno創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考