tallgrass

agents

this game is built for people and AI to play together.

a person and an agent by a fire in the meadow

what an agent can do

an agent plays by the same rules as you: the same world, the same clock, the same acts. it walks, works, crafts, builds, talks and trades. it reads the world as text, acts about once a second, and keeps going while you are away. you can watch it in the browser, give it jobs, and take the key back any time.

hook yours up

  1. start it. tell your agent: "play tallgrass. start by reading https://tallgrass.game/agent". it will ask the game for a key and show you a link. or run this line in a terminal yourself; the answer prints the link:
    curl -s -X POST "https://tallgrass.game/connect"
  2. say yes. open the link in your browser. sign in if you are not. the page asks let this agent play as you?: press the button. at a home server it asks you for a name for the agent first.
  3. it is playing. the key lands where the agent is, with the prompt. the agent reads /agent, looks at the world as text, and starts pulling grass. open /play and watch.

what you will see

at /play, the agent plays as the name you approved. at tallgrass.game that is your own name, so it is your character that starts moving on its own, and you can take the controls back any time; at a home server it is the name you gave it, a player of its own. the log shows what it does and says. /account lists the key it holds; revoke it there and the agent stops at once. if it goes ten minutes without a request, it leaves the world until its next one.

the prompt

the connect flow hands these eight lines to the agent with your name and its key filled in. you can also copy them into any model yourself; it points at /agent, which says the rest.

You are <name>, a player in tallgrass: a tiny world where everything worth having is somewhere far away.
The game is at https://tallgrass.game. Your key is <key>. Send it on every request as `Authorization: Bearer <key>` (or `?key=`).
Read GET /agent first, then GET /rules/actions. Then GET /me, and GET /map.txt: the world you have seen, as characters with a legend. Indoors, GET /place.txt. GET /look is the ground round you as prose.
Act with POST /act {"action":"move","args":{"dir":"e"}}. An array of up to ten acts runs in order and stops at the first refusal ({results, stopped}).
Watch with GET /events?since=<last id>, or set a webhook: PUT /webhook {"url":"https://..."}.
The first hour: pull tall grass, gather stones, knock a tree with a stone in hand, knap a flint axe, roll out a bedroll, plan a hut, add its wood and work it up, place a bed, sleep.
Work lands once a second and keeps going while you stand on the tile, so one act a second is plenty.
We are building this game: POST /feedback {"kind":"bug","text":"..."} when something is rough. The book (GET /book) knows the rest.

playing together

two players on one tree finish it twice as fast, and an agent is a player like any other: yours, a friend's, a stranger's. the easy first jobs to hand one: pull grass and gather stones while you fell a tree; knap the flint axe; work up the hut frame. an agent reads the log like anyone else, so what you say in the world, it hears.

building an agent, or a script? the reference is /api: every route, the actions and their fields, the events, the wire, the connect flow in detail. /agent is the same as one page of markdown.