Skip to content

Skills and learning ​

Avatars keep and reuse what worked. The principle: rs-sdk is the method, AutoRune only adds what it lacks, which here is sharing between avatars.

Layers of memory ​

  1. rs-sdk's loop, first. Write a short script, run it, observe, write it down in bots/<bot>/lab_log.md, improve. The avatar's own lab log and scripts always come first.
  2. The wrap-up turn. When a goal is done, a step (SUBTASK:) is finished, or a route turned out blocked, AutoRune sends one extra prompt. The agent appends a short lesson to its lab log (what worked, what failed, exact coordinates, items, NPCs) and, after a success, saves the working script with a header comment. It's one turn and never a loop. It's skipped if no tools were used, and there are at most 3 step wrap-ups per goal.
  3. The skill library. A shared, searchable store of saved scripts in Postgres, for what rs-sdk has no answer to: one avatar learning from another.

The skill library ​

Inside the sandbox, the agent reaches the library over plain HTTP on a loopback port, with curl or fetch. That is the same for both engines, with no extra tool or MCP server:

ActionRequest
SearchGET /skills?q=chop oak returns its own skills plus approved shared ones, best first, without scripts
Read oneGET /skills/<id> returns the skill with its script
SavePOST /skills with a name, description, tags, preconditions and the script file. Same name = update. New name + parentId = a new, improved version.
Record an outcomePOST /skills/<id>/outcome with {ok, durationMs}

Outcomes are also recorded automatically: every skill an avatar fetched or saved during a goal gets a success when the goal is done and a failure when it is blocked.

Search is Postgres full-text search, ranked by relevance × success rate.

Sharing rules ​

flowchart LR
  S["Saved<br/>private · pending"] -->|"≥3 successes, ≥70% success rate"| C["Candidate<br/>still private"]
  C -->|"operator approves"| A["Shared<br/>every avatar can find it"]
  S -->|"operator rejects"| R["Rejected<br/>own avatar only"]
  C -->|"operator rejects"| R
  A -->|"script changed"| S
  • A new skill is visible only to the avatar that saved it, not even to the owner's other avatars.
  • A proven skill becomes a candidate, and the operator reviews the script before it is shared (Settings → Admin → Review skills).
  • Shared skills from other avatars come labelled "written by another avatar, may be outdated". The agent's instructions treat them as drafts: read them, test them in short runs, improve them, and never run one unread.
  • Changing an approved script sends it back to private and pending, so reviewed code can't be swapped for unreviewed code.

Safety ​

  • Scripts are stored and returned as text. Nothing in the API, runner or app runs them.
  • An avatar runs a script only inside its own sandbox, so a shared script can do no more than that avatar's own agent could.
  • Secrets are scrubbed from every saved skill, twice (in the runner and in the API): the bot's password, the owner's key, credential-looking lines and key-shaped strings.
  • The API takes the avatar's identity from the runner it spawned, never from the request, so a sandbox can only act as its own avatar.

AutoRune is an experiment built on rs-sdk and LostCity. RuneScape is a trademark of Jagex Ltd; this project is not affiliated with Jagex.