Overview
Skills are modular knowledge bundles that give the ouroborai agent context about specific protocols, strategies, and capabilities. Each skill is aSKILL.md markdown file containing structured information the agent uses to understand how to interact with a DeFi protocol or execute a trading strategy.
Skills are not code. They are documentation that gets injected into the agent’s system prompt at runtime, guiding how it selects tools, formats parameters, and explains results to the user.
Built-in skills
ouroborai ships with built-in skills covering the core Arbitrum DeFi ecosystem:arb-trade
Spot trading on Uniswap V3 and Camelot. Covers quoting, slippage, fee tiers, and token resolution.
gmx
GMX V2 perpetual futures. Markets (ETH, BTC, ARB, LINK), leverage up to 100x, position management.
aave
Aave V3 lending and borrowing. Supply/withdraw, borrow/repay, health factor monitoring.
camelot
Camelot DEX, Arbitrum’s native AMM. Volatile and stable pools, custom fee structures.
pendle
Pendle Finance fixed and variable yield trading. PT/YT tokens, yield markets.
kyan
Kyan options protocol. Multi-leg strategies, portfolio margin, Greeks.
timeboost-bid
TimeBoost express lane bidding. Priority sequencing, MEV estimation, round timing.
rwa-stocks
Robinhood tokenized stocks on Arbitrum Orbit. Contract scanning, symbol lookup.
| Skill | Source | Description |
|---|---|---|
evm-l2s | ethskills.com | Layer 2 network comparison and bridging |
evm-money-legos | ethskills.com | Composable DeFi building blocks |
evm-security | ethskills.com | Smart contract security patterns |
evm-wallets | ethskills.com | Wallet types, key management, account abstraction |
evm-standards | ethskills.com | ERC standards (ERC-20, ERC-721, ERC-4337, etc.) |
How skill detection works
When a user submits a prompt, the agent runner matches keywords in the prompt text against a keyword-to-skill mapping. Matched skills are loaded and their content is injected into the system prompt before Claude processes the request.| Keywords | Skill loaded |
|---|---|
swap, trade, buy, sell, uniswap | arb-trade |
camelot | camelot |
perp, perpetual, leverage, long, short, gmx | gmx |
lend, borrow, supply, aave | aave |
yield, pendle | pendle |
options, kyan | kyan |
timeboost, express lane | timeboost-bid |
stock, robinhood, rwa | rwa-stocks |
alchemix, self-repaying, aleth, alusd | alchemix |
nft, transfer nft | nft |
prediction, polymarket, forecast | polymarket |
bridge, cross-chain, bungee | bridge |
launch, create token, deploy token | token-launch |
arb-trade skill is always loaded as a baseline, even if no keywords match.
Multiple skills can be loaded simultaneously. A prompt like “swap ETH for USDC and supply to Aave” would load both
arb-trade and aave skills.Skill anatomy
Each skill is a markdown file namedSKILL.md with a defined structure. The loader parses metadata from the heading and frontmatter-style fields:
| Field | Source | Description |
|---|---|---|
name | First # heading | Display name of the skill |
description | First paragraph after heading | Short description |
version | version: field | Semantic version |
author | author: field | Skill author (optional) |
content | Full file content | Injected into the agent system prompt |
Loading and caching
Skills are fetched over HTTP and cached in memory for 1 hour. Built-in skills are served from the project’s GitHub repository. External skills can be loaded from any URL. The loader resolves skill references in this order:- Check if the input is a URL (starts with
http) — fetch directly - Check built-in skills map by name
- Check external skills map by name
- Throw an error if not found
Installing external skills
You can install skills from any GitHub repository at runtime using the agent’s natural-language interface or the MCParb_install_skill tool:
Creating a custom skill
To add a new skill to the platform:Write the SKILL.md file
Create a markdown file following the anatomy described above. Include supported tokens, constraints, example prompts, and any protocol-specific details the agent needs to know.
Host it at a URL
Push the file to a GitHub repository or host it on any HTTP-accessible server. The loader fetches skills over plain HTTP.
Register in the built-in map (optional)
To make the skill discoverable by name without a URL, add an entry to the
BUILTIN_SKILLS or EXTERNAL_SKILLS map in packages/skills/src/loader.ts.Add keyword mappings (optional)
To enable automatic detection from user prompts, add keyword entries to the
keywords map in apps/api/src/agent/runner.ts.Skills that only provide knowledge (no new tools) can be created and installed without any code changes. The agent will use the skill content to better formulate requests to existing tools.
Listing available skills
TheGET /agent/skills endpoint returns all registered skills:
"external": true are sourced from third-party providers and are loaded on demand when triggered by prompt keywords or explicit installation.