SkillWeaver:能夠通過自我發現和精煉技能實現自我改進的的智能體框架
SkillWeaver是什么?
SkillWeaver 是一個可以讓Web智能體(比如網頁機器人)通過發現和磨練技能來自我改進的一個框架,使Web Agents能夠通過自主探索和技能合成實現自我提升。它通過將網站交互抽象為可重用的技能(API),并通過Web Agents在新網站上自主發現、練習和提煉這些技能,通過迭代探索,不斷擴展API庫,來增強智能體的能力。SkillWeaver 可以應用多種場景,比如自動化網頁瀏覽任務、提高代理在復雜數字環境中的適應能力等。此外,而且還可以幫助開發者設計、實現和測試自己的AGI框構。
SkillWeaver功能特征
自主技能發現與練習:面對新網站時,代理能夠自主發現潛在技能,并通過實踐將這些技能提煉為穩健的 API。
迭代探索與能力提升:通過不斷探索和添加新技能,代理持續擴充其輕量級、即插即用的 API 庫,從而顯著提升自身能力。
技能轉移與共享:表現良好的代理合成的 API 可以傳遞給能力較弱的代理,從而加速學習過程并促進共享知識庫的發展。
高效性能提升:實驗表明,SkillWeaver 在 WebArena 平臺和真實網站上的應用分別實現了 31.8% 和 39.8% 的成功率提升。
適應復雜環境:SkillWeaver 能夠使代理更好地適應真實世界網站的高度多樣性和復雜性。
SkillWeaver應用場景
自動化網頁任務:自動完成網頁瀏覽、搜索、篩選等任務,從網頁中提取信息,如電商商品信息、用戶評論等。
復雜任務組合:將多個簡單技能組合成復雜任務,如多步驟操作。
跨代理知識共享:代理之間共享技能,提升整體效率。
適應復雜網頁環境:在復雜多變的網頁環境中保持高效。
生成可復用技能庫:生成輕量級、可復用的技能庫,方便后續任務調用。
提升決策能力:通過技能合成,提升代理的決策和推理能力。
自動化測試與調試:確保技能的可靠性和穩定性。
泛化能力:合成的技能可在不同網站上通用。
低代碼開發:幫助開發者快速構建和部署自動化任務,減少代碼編寫。
SkillWeaver安裝使用
安裝:創建虛擬環境
conda create -n skillweaver python=3.10 conda activate skillweaver pip install -r requirements.txt playwright install
然后配置 Openai API:
export OPENAI_API_KEY=
示例代碼
以下是一個簡單的示例,展示如何使用 SkillWeaver 創建一個執行搜索任務的人類輸入代理:
from skillweaver import Schema from skillweaver.llms import OpenAI # 創建 AGI 畫布 skillweb = Schema(llm=OpenAI(openai_api_key="*****")) # 設置全局變量 # 添加并暴露在 schema 中使用的技能 search, human = skillweb.load_skills(['SearchRetreival', 'HumanInputObserver']) # 連接兩個代理,并可以在此處指定自定義處理邏輯 skillweb.schedule([human, search]) # 運行 skillweb.run()
Github地址:https://github.com/OSU-NLP-Group/SkillWeaver
項目主頁:https://osu-nlp-group.github.io/SkillWeaver/