![]()
![]()
![]()
一、版本概覽
agno v2.5.17 已正式發(fā)布,這一版本雖然看起來(lái)是一個(gè)常規(guī)小版本更新,但從實(shí)際變更內(nèi)容來(lái)看,覆蓋面相當(dāng)廣,涉及能力增強(qiáng)、行為優(yōu)化以及多個(gè)關(guān)鍵 bug 修復(fù)。整體上,這次更新更偏向于“穩(wěn)定性增強(qiáng) + 開(kāi)發(fā)體驗(yàn)優(yōu)化 + 關(guān)鍵細(xì)節(jié)修正”,特別適合正在使用 agno 構(gòu)建工作流、模型調(diào)用、知識(shí)庫(kù)、MCP 集成以及流式輸出相關(guān)功能的開(kāi)發(fā)者關(guān)注。
從這次更新內(nèi)容來(lái)看,主要可以分為以下幾個(gè)方向:
1.新增能力
? 支持關(guān)閉 Claude 文件引用
? 支持 GitHubConfig 倉(cāng)庫(kù)按請(qǐng)求指定
2.核心修復(fù)
? 組件加載時(shí)保留自定義數(shù)據(jù)庫(kù)表名
? MCP 初始化時(shí)正確應(yīng)用 header_provider 的請(qǐng)求頭
? 保留內(nèi)部工作流事件身份,并為 agent/team 事件增加 nested_depth
? 讓知識(shí)庫(kù)數(shù)據(jù)庫(kù)在 config API 中實(shí)時(shí)構(gòu)建
? 停止向所有模型 provider 注入共享 HTTP/2 client
? 在所有 router 流式生成器中顯式捕獲 CancelledError
? 在清理 JSON 前先嘗試原始 JSON 解析,以保留字符串中的代碼塊
? 排除框架注入?yún)?shù),避免出現(xiàn)在 user_input_schema 中
? memory pipeline gate check 中補(bǔ)充 extra_messages 判斷
3.其他說(shuō)明
? 本版本同步了相關(guān)維護(hù)和發(fā)布流程更新,整體屬于一次較全面的穩(wěn)定性迭代。
接下來(lái),我們按照更新內(nèi)容逐項(xiàng)展開(kāi)說(shuō)明,幫助你完整了解 agno v2.5.17 到底改了什么、適合哪些場(chǎng)景、以及這些變化意味著什么。
二、Improvement:新增改進(jìn)項(xiàng) 1. 支持關(guān)閉 Claude 文件引用
這是本次更新中非常值得關(guān)注的一個(gè)能力增強(qiáng)。
在 v2.5.17 中,新增了一個(gè)選項(xiàng),可以禁用 Claude 的文件引用。
對(duì)于部分場(chǎng)景而言,文件引用并不是必須展示的內(nèi)容,尤其是在你希望輸出更簡(jiǎn)潔、或者不希望返回內(nèi)容中帶有額外引用信息時(shí),這個(gè)能力會(huì)非常有用。通過(guò)該選項(xiàng),開(kāi)發(fā)者可以更靈活地控制 Claude 輸出行為,讓最終結(jié)果更貼近自己的產(chǎn)品需求。
這一改進(jìn)的意義在于:
? 可以減少輸出中的附加引用信息
? 有助于控制響應(yīng)內(nèi)容的呈現(xiàn)形式
? 在某些對(duì)展示格式要求更嚴(yán)格的場(chǎng)景中更實(shí)用
如果你的應(yīng)用中會(huì)處理 Claude 相關(guān)輸出,那么這個(gè)新選項(xiàng)可以直接提升可配置性和可控性。
2. GitHubConfig 的 repo 支持按請(qǐng)求指定
另一個(gè)新增能力是:GitHubConfig 中的 repo 可以按請(qǐng)求單獨(dú)指定。
這意味著倉(cāng)庫(kù)配置不再完全依賴(lài)全局固定值,而是允許在每次請(qǐng)求時(shí)靈活傳入不同的倉(cāng)庫(kù)配置。對(duì)于需要?jiǎng)討B(tài)切換倉(cāng)庫(kù)、按用戶(hù)、按任務(wù)、按項(xiàng)目去訪問(wèn)不同 GitHub 倉(cāng)庫(kù)的場(chǎng)景,這個(gè)能力會(huì)非常實(shí)用。
它帶來(lái)的直接好處包括:
? 請(qǐng)求級(jí)別的倉(cāng)庫(kù)切換更加靈活
? 更適合多倉(cāng)庫(kù)、多項(xiàng)目的統(tǒng)一接入
? 降低全局配置固定化帶來(lái)的限制
? 讓 GitHub 相關(guān)能力在實(shí)際應(yīng)用中更具適配性
這一改進(jìn)對(duì)于構(gòu)建面向多個(gè)代碼倉(cāng)庫(kù)的自動(dòng)化能力、知識(shí)集成能力、或者與 GitHub 數(shù)據(jù)交互的智能體應(yīng)用,都很有幫助。
三、Bug Fixes:核心修復(fù)逐項(xiàng)說(shuō)明
接下來(lái)是本次更新的重點(diǎn),v2.5.17 一共包含多項(xiàng)修復(fù),而且很多都屬于會(huì)影響開(kāi)發(fā)、運(yùn)行穩(wěn)定性或輸出準(zhǔn)確性的關(guān)鍵問(wèn)題。
1. 加載組件時(shí)保留自定義數(shù)據(jù)庫(kù)表名
此前在加載組件時(shí),自定義數(shù)據(jù)庫(kù)表名可能無(wú)法被正確保留。
在這次版本中,已經(jīng)修復(fù)這一問(wèn)題,確保加載組件后,自定義表名仍然保持原樣。
這個(gè)修復(fù)的重要性很高,因?yàn)閿?shù)據(jù)庫(kù)表名往往是項(xiàng)目結(jié)構(gòu)的一部分。如果加載組件時(shí)表名被覆蓋或丟失,可能導(dǎo)致:
? 數(shù)據(jù)庫(kù)映射異常
? 已有表結(jié)構(gòu)無(wú)法正確識(shí)別
? 組件與數(shù)據(jù)庫(kù)之間的對(duì)應(yīng)關(guān)系出現(xiàn)偏差
? 在多環(huán)境部署中產(chǎn)生不一致問(wèn)題
現(xiàn)在這個(gè)問(wèn)題被修復(fù)后,組件加載流程會(huì)更穩(wěn)定,也更適合有自定義數(shù)據(jù)庫(kù)設(shè)計(jì)的項(xiàng)目。
2. MCP 初始化時(shí)正確應(yīng)用 header_provider 的 headers
在 MCP 初始化過(guò)程中,之前可能存在一個(gè)問(wèn)題:header_provider 提供的 headers 沒(méi)有被正確應(yīng)用。
v2.5.17 里已經(jīng)修復(fù)這一點(diǎn),保證在 MCP 初始化階段,header_provider 返回的請(qǐng)求頭能夠被正確使用。
這類(lèi)修復(fù)非常重要,因?yàn)檎?qǐng)求頭常常用于:
? 鑒權(quán)
? 身份標(biāo)識(shí)
? 環(huán)境區(qū)分
? 路由控制
? 上下文傳遞
如果初始化時(shí)沒(méi)有正確帶上這些 headers,后續(xù)連接、調(diào)用或者權(quán)限校驗(yàn)都可能受到影響。
修復(fù)之后,MCP 初始化過(guò)程會(huì)更加可靠,減少由于 header 丟失導(dǎo)致的異常情況。
3. 保留內(nèi)部工作流事件身份,并為 agent/team 事件增加 nested_depth
這次更新還修復(fù)了一個(gè)與事件結(jié)構(gòu)有關(guān)的問(wèn)題:
內(nèi)部工作流事件的身份得以保留,同時(shí) agent/team 事件新增了 nested_depth。
這意味著事件在傳遞和處理過(guò)程中,會(huì)保留更完整的身份信息;而 agent/team 類(lèi)事件則可以通過(guò) nested_depth 更清晰地表達(dá)嵌套層級(jí)。
這個(gè)修復(fù)的價(jià)值體現(xiàn)在:
? 更好地表示嵌套工作流結(jié)構(gòu)
? 便于追蹤 agent 和 team 事件的層級(jí)關(guān)系
? 有助于事件分析、調(diào)試和日志處理
? 提高復(fù)雜工作流中的事件可讀性
對(duì)于涉及多層嵌套、內(nèi)部工作流、團(tuán)隊(duì)協(xié)作型 agent 運(yùn)行的場(chǎng)景,這類(lèi)修復(fù)非常關(guān)鍵,因?yàn)樗苯雨P(guān)系到事件鏈路是否清晰、是否能準(zhǔn)確定位上下文。
4. 在 config API 中實(shí)時(shí)構(gòu)建知識(shí)庫(kù)數(shù)據(jù)庫(kù)
本次版本修復(fù)了一個(gè)與知識(shí)庫(kù)數(shù)據(jù)庫(kù)有關(guān)的問(wèn)題:
在 config API 中構(gòu)建 knowledge dbs 時(shí)改為實(shí)時(shí)進(jìn)行。
這意味著知識(shí)庫(kù)數(shù)據(jù)庫(kù)的構(gòu)建不再依賴(lài)舊的延遲或不及時(shí)行為,而是在 config API 的相關(guān)流程中實(shí)時(shí)構(gòu)建,從而提升配置階段的準(zhǔn)確性和即時(shí)性。
這個(gè)變化有幾個(gè)明顯好處:
? 配置與數(shù)據(jù)庫(kù)狀態(tài)更同步
? 減少因延遲構(gòu)建導(dǎo)致的配置不一致
? 更適合動(dòng)態(tài)更新知識(shí)庫(kù)的場(chǎng)景
? 有利于提升整體配置流程的可靠性
對(duì)于依賴(lài)知識(shí)庫(kù)進(jìn)行檢索、問(wèn)答、上下文增強(qiáng)等能力的項(xiàng)目,這個(gè)修復(fù)會(huì)帶來(lái)更穩(wěn)定的實(shí)際體驗(yàn)。
5. 停止向所有模型 provider 注入共享 HTTP/2 client
這是一個(gè)非常值得關(guān)注的底層修復(fù)。
在此前版本中,系統(tǒng)可能會(huì)向所有 model provider 注入一個(gè)共享的 HTTP/2 client。v2.5.17 中已經(jīng)調(diào)整為:不再將共享 HTTP/2 client 注入到所有模型提供方中。
這類(lèi)變更通常意味著更合理的資源隔離和更清晰的 provider 行為邊界。
共享 client 在某些情況下可能帶來(lái)耦合、連接復(fù)用或兼容性問(wèn)題,而現(xiàn)在改為不再統(tǒng)一注入,能讓不同 provider 的連接行為更加獨(dú)立。
這一修復(fù)可能帶來(lái)的改善包括:
? 降低不同 provider 之間的相互影響
? 避免共享連接引發(fā)的兼容性問(wèn)題
? 提升 provider 行為的一致性和可控性
? 有助于減少某些難以排查的運(yùn)行異常
如果你的項(xiàng)目涉及多個(gè)模型 provider,這一修復(fù)尤其值得重視。
6. 在所有 router 流式生成器中顯式捕獲 CancelledError
流式輸出場(chǎng)景中,取消異常的處理非常關(guān)鍵。
v2.5.17 修復(fù)了一個(gè)問(wèn)題:在所有 router streaming generators 中顯式捕獲 CancelledError。
這意味著當(dāng)流式任務(wù)被取消時(shí),系統(tǒng)能夠更明確地處理該異常,而不是讓它以不透明的方式傳播。
對(duì)于長(zhǎng)期運(yùn)行、可中斷、實(shí)時(shí)輸出的場(chǎng)景來(lái)說(shuō),這項(xiàng)修復(fù)能顯著提升穩(wěn)定性。
其價(jià)值主要在于:
? 改善取消請(qǐng)求時(shí)的異常處理
? 避免流式生成器因異常處理不明確而報(bào)錯(cuò)
? 提升 router 流式輸出的健壯性
? 更適合交互式應(yīng)用和實(shí)時(shí)響應(yīng)場(chǎng)景
對(duì)于前端不斷接收流式結(jié)果、用戶(hù)可能隨時(shí)終止請(qǐng)求的環(huán)境,這項(xiàng)修復(fù)非常重要。
7. 先嘗試原始 JSON 解析,再進(jìn)行清理,以保留字符串中的代碼塊
這一項(xiàng)修復(fù)非常細(xì)致,但對(duì)實(shí)際使用體驗(yàn)影響不小。
在 v2.5.17 中,系統(tǒng)在處理 JSON 時(shí),改為先嘗試原始 JSON 解析,如果失敗后再進(jìn)行清理處理。這樣做的目的,是為了盡可能保留字符串中的代碼塊內(nèi)容,避免在清理過(guò)程中誤傷原始文本。
這個(gè)問(wèn)題的核心在于:有些 JSON 內(nèi)容中可能包含代碼塊、特殊字符串或帶格式文本,如果直接進(jìn)入清理流程,可能會(huì)導(dǎo)致內(nèi)容結(jié)構(gòu)發(fā)生變化,甚至丟失原本想保留的信息。現(xiàn)在先嘗試原始解析,可以更好地保持原始數(shù)據(jù)完整性。
這一修復(fù)的優(yōu)點(diǎn)包括:
? 更好地保留原始字符串內(nèi)容
? 減少代碼塊被誤清理的風(fēng)險(xiǎn)
? 提升 JSON 解析的準(zhǔn)確性
? 讓復(fù)雜文本內(nèi)容在處理后仍保持原貌
對(duì)于包含代碼、文檔片段、格式化內(nèi)容的 JSON 輸入,這項(xiàng)修復(fù)非常實(shí)用。
8. 排除框架注入?yún)?shù),避免出現(xiàn)在 user_input_schema 中
在用戶(hù)輸入 schema 的生成過(guò)程中,之前可能會(huì)把一些框架注入?yún)?shù)錯(cuò)誤地包含進(jìn)去。
v2.5.17 已經(jīng)修復(fù)這個(gè)問(wèn)題,確保這些參數(shù)會(huì)被排除,不再出現(xiàn)在user_input_schema中。
這項(xiàng)修復(fù)非常重要,因?yàn)?code>user_input_schema的本意是描述用戶(hù)實(shí)際需要提供的輸入?yún)?shù)。如果把框架內(nèi)部自動(dòng)注入的參數(shù)也放進(jìn)去,會(huì)帶來(lái)以下問(wèn)題:
? schema 不夠純粹,用戶(hù)難以理解
? 前端表單生成可能出現(xiàn)冗余字段
? 驗(yàn)證邏輯可能受到干擾
? 用戶(hù)輸入與系統(tǒng)內(nèi)部參數(shù)邊界混淆
現(xiàn)在通過(guò)排除框架注入?yún)?shù),schema 會(huì)更加干凈、準(zhǔn)確,也更符合用戶(hù)輸入的真實(shí)語(yǔ)義。
9. memory pipeline gate check 中包含 extra_messages
本次更新還修復(fù)了 memory pipeline 中 gate check 的一個(gè)遺漏:
現(xiàn)在會(huì)將 extra_messages 納入判斷。
這個(gè)修復(fù)看似簡(jiǎn)單,但實(shí)際意義很明確。
如果在 gate check 時(shí)忽略了 extra_messages,就可能導(dǎo)致內(nèi)存管道對(duì)當(dāng)前消息上下文判斷不完整,進(jìn)而影響后續(xù)處理結(jié)果。加入這個(gè)字段后,gate check 會(huì)更全面,判斷依據(jù)也更充分。
這一修復(fù)能夠帶來(lái)的改善包括:
? 提高 memory pipeline 判斷的完整性
? 讓額外消息被正確納入上下文檢查
? 減少因?yàn)橄⑦z漏導(dǎo)致的流程偏差
? 提升內(nèi)存相關(guān)邏輯的準(zhǔn)確性
對(duì)于依賴(lài)消息上下文、記憶管理、額外補(bǔ)充消息的場(chǎng)景,這個(gè)修復(fù)非常必要。
四、What's Changed:合并說(shuō)明與發(fā)布相關(guān)更新
除了上面列出的主要功能與修復(fù),本次版本在變更記錄中還同步了多個(gè)維護(hù)類(lèi)提交。雖然這些內(nèi)容大多屬于實(shí)現(xiàn)層面的整理,但從版本發(fā)布角度來(lái)看,它們共同組成了 v2.5.17 的完整更新集合。
對(duì)應(yīng)的變更包括:
? 在 memory pipeline gate check 中包含 extra_messages
? 主驗(yàn)證工作流新增每周定時(shí)運(yùn)行
? 排除框架注入?yún)?shù),避免出現(xiàn)在 user_input_schema 中
? 先嘗試原始 JSON 解析,再進(jìn)行清理,以保留字符串中的代碼塊
? 在所有 router 流式生成器中顯式捕獲 CancelledError
? 停止向所有模型 provider 注入共享 HTTP/2 client
? 在 config API 中實(shí)時(shí)構(gòu)建知識(shí)庫(kù)數(shù)據(jù)庫(kù)
? 保留內(nèi)部工作流事件身份,并為 agent/team 事件增加 nested_depth
? 在 MCP 初始化時(shí)正確應(yīng)用 header_provider 的 headers
? 加載組件時(shí)保留自定義數(shù)據(jù)庫(kù)表名
? 允許 GitHubConfig 的 repo 按請(qǐng)求指定
? 支持關(guān)閉 Claude 文件引用
? 完成 2.5.17 版本發(fā)布
這些變更共同說(shuō)明,agno v2.5.17 不是單純?cè)黾右粋€(gè)新能力的小補(bǔ)丁,而是一次圍繞可控性、穩(wěn)定性、數(shù)據(jù)一致性和輸出準(zhǔn)確性的集中優(yōu)化。
五、版本價(jià)值總結(jié)
如果把 agno v2.5.17 的變化做一個(gè)總結(jié),可以看到它主要解決了幾個(gè)關(guān)鍵方向的問(wèn)題:
1. 更強(qiáng)的配置靈活性
? Claude 文件引用可關(guān)閉
? GitHubConfig repo 可按請(qǐng)求指定
? 流式生成器顯式捕獲取消異常
? 停止向所有 provider 注入共享 HTTP/2 client
? 保留自定義數(shù)據(jù)庫(kù)表名
? 保留內(nèi)部工作流事件身份
? 增加 nested_depth
? 原始 JSON 優(yōu)先解析
? 排除框架注入?yún)?shù)
? memory pipeline 納入 extra_messages
? MCP 初始化正確應(yīng)用 headers
? config API 中實(shí)時(shí)構(gòu)建知識(shí)庫(kù)數(shù)據(jù)庫(kù)
可以說(shuō),這一版本非常適合正在構(gòu)建復(fù)雜工作流、知識(shí)庫(kù)系統(tǒng)、流式交互服務(wù)以及多 provider 集成項(xiàng)目的開(kāi)發(fā)者升級(jí)和關(guān)注。
六、結(jié)語(yǔ)
代碼地址:github.com/agno-agi/agno
agno v2.5.17 這次更新雖然沒(méi)有堆砌大量全新功能,但從實(shí)際開(kāi)發(fā)角度看,每一項(xiàng)變更都很“實(shí)用”。
它沒(méi)有追求表面上的大而全,而是圍繞開(kāi)發(fā)者最容易遇到的問(wèn)題進(jìn)行了精準(zhǔn)修復(fù):
配置更靈活、流式更穩(wěn)定、結(jié)構(gòu)更完整、解析更準(zhǔn)確、集成更可靠。
我們相信人工智能為普通人提供了一種“增強(qiáng)工具”,并致力于分享全方位的AI知識(shí)。在這里,您可以找到最新的AI科普文章、工具評(píng)測(cè)、提升效率的秘籍以及行業(yè)洞察。 歡迎關(guān)注“福大大架構(gòu)師每日一題”,發(fā)消息可獲得面試資料,讓AI助力您的未來(lái)發(fā)展。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
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.