SkillWeaver: A Self-Improving Agent Framework via Self-Discovered and Refined Skills 52

小编 ·

SkillWeaver: A Self-Improving Agent Framework via Self-Discovered and Refined Skills

SkillWeaver is a framework that enables Web agents (such as web robots) to self-improve by discovering and refining skills. It allows Web agents to autonomously explore and synthesize skills for self-enhancement. By abstracting website interactions into reusable skills (APIs) and letting Web agents autonomously discover, practice, and refine these skills on new websites, it iteratively expands the API library to enhance agent capabilities. SkillWeaver can be applied in many scenarios, such as automated web browsing tasks, and more.

SkillWeaver: A Self-Improving Agent Framework via Self-Discovered and Refined Skills

What is SkillWeaver?

SkillWeaver is a framework that enables Web agents (such as web robots) to self-improve by discovering and honing skills. It enables Web Agents to achieve self-improvement through autonomous exploration and skill synthesis. It abstracts website interactions into reusable skills (APIs), and enables Web Agents to autonomously discover, practice, and refine these skills on new websites. Through iterative exploration, it continuously expands the API library to enhance the agent's capabilities. SkillWeaver can be applied in a variety of scenarios, such as automating web browsing tasks and improving an agent's adaptability in complex digital environments. In addition, it can also help developers design, implement, and test their own AGI frameworks.

SkillWeaver: An agent framework capable of self-improvement through self-discovery and refinement of skills.webp

SkillWeaver Features

  • Autonomous Skill Discovery and Practice: When facing a new website, the agent can autonomously discover potential skills and refine them into robust APIs through practice.

  • Iterative Exploration and Capability Enhancement: Through continuous exploration and the addition of new skills, the agent continuously expands its lightweight, plug-and-play API library, thereby significantly enhancing its own capabilities.

  • Skill Transfer and Sharing: APIs synthesized by high-performing agents can be passed on to less capable agents, thereby accelerating the learning process and promoting the development of a shared knowledge base.

  • Efficient Performance Improvement: Experiments show that SkillWeaver achieves success rate improvements of 31.8% and 39.8% on the WebArena platform and real websites, respectively.

  • Adapting to Complex Environments: SkillWeaver enables agents to better adapt to the high diversity and complexity of real-world websites.

SkillWeaver Application Scenarios

  • Automated Web Tasks: Automatically complete tasks such as web browsing, searching, and filtering, and extract information from web pages, such as e-commerce product information and user reviews.

  • Complex Task Composition: Combine multiple simple skills into complex tasks, such as multi-step operations.

  • Cross-Agent Knowledge Sharing: Agents share skills with each other to improve overall efficiency.

  • Adapting to Complex Web Environments: Maintaining high efficiency in complex and changing web environments.

  • Generating a Reusable Skill Library: Generate a lightweight, reusable skill library that is convenient for subsequent task invocation.

  • Enhancing Decision-Making Capabilities: Improve the agent's decision-making and reasoning capabilities through skill synthesis.

  • Automated Testing and Debugging: Ensure the reliability and stability of skills.

  • Generalization Capabilities: Synthesized skills can be used universally across different websites.

  • Low-Code Development: Help developers quickly build and deploy automation tasks, reducing code writing.

SkillWeaver Application Scenarios.webp

SkillWeaver Installation and Usage

Installation:Create a virtual environment

conda create -n skillweaver python=3.10
conda activate skillweaver
pip install -r requirements.txt
playwright install

Then configure the Openai API:

export OPENAI_API_KEY=

Example Code

The following is a simple example showing how to use SkillWeaver to create a human-input agent that performs a search task:

from skillweaver import Schema
from skillweaver.llms import OpenAI
# Create AGI canvas
skillweb = Schema(llm=OpenAI(openai_api_key="*****"))  # Set global variables
# Add and expose the skills used in the schema
search, human = skillweb.load_skills(['SearchRetreival', 'HumanInputObserver'])
# Connect the two agents, and you can specify custom processing logic here
skillweb.schedule([human, search])
# Run
skillweb.run()

Github address:https://github.com/OSU-NLP-Group/SkillWeaver

Project homepage:https://osu-nlp-group.github.io/SkillWeaver/