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/