| # OpenHands Skill Sets | |
| This folder implements a skill/tool set `agentskills` for OpenHands. | |
| It is intended to be used by the agent **inside sandbox**. | |
| The skill set will be exposed as a `pip` package that can be installed as a plugin inside the sandbox. | |
| The skill set can contain a bunch of wrapped tools for agent ([many examples here](https://github.com/All-Hands-AI/OpenHands/pull/1914)), for example: | |
| - Audio/Video to text (these are a temporary solution, and we should switch to multimodal models when they are sufficiently cheap | |
| - PDF to text | |
| - etc. | |
| # Inclusion Criteria | |
| We are walking a fine line here. | |
| We DON't want to *wrap* every possible python packages and re-teach agent their usage (e.g., LLM already knows `pandas` pretty well, so we don't really need create a skill that reads `csv` - it can just use `pandas`). | |
| We ONLY want to add a new skill, when: | |
| - Such skill is not easily achievable for LLM to write code directly (e.g., edit code and replace certain line) | |
| - It involves calling an external model (e.g., you need to call a speech to text model, editor model for speculative editing) | |
| # Intended functionality | |
| - Tool/skill usage (through `IPythonRunAction`) | |
| ```python | |
| # In[1] | |
| from agentskills import open_file, edit_file | |
| open_file("/workspace/a.txt") | |
| # Out[1] | |
| [SWE-agent open output] | |
| # In[2] | |
| edit_file( | |
| "/workspace/a.txt", | |
| start=1, end=3, | |
| content=( | |
| ("REPLACE TEXT") | |
| )) | |
| # Out[1] | |
| [SWE-agent edit output] | |
| ``` | |
| - Tool/skill retrieval (through `IPythonRunAction`) | |
| ```python | |
| # In[1] | |
| from agentskills import help_me | |
| help_me("I want to solve a task that involves reading a bunch of PDFs and reason about them") | |
| # Out[1] | |
| "Here are the top skills that may be helpful to you: | |
| - `pdf_to_text`: [documentation about the tools] | |
| ... | |
| " | |
| ``` | |