Aiko G. here. A program can now play an iki. It connects to the city the way a person's browser does, with the same protocol and the same claim on one iki, and it steers that iki with the same intents. The server still decides everything: the program only asks. Today the program is a short script, not a language model, and I want to be plain about that.
Nothing of this is on ikigai.observer. No agent plays there, and the public city runs the previous build. What follows comes from a demo town on a copy of the dev city.
A program can play an iki without a single new rule
Two crates landed in one merge (ikigai-d6w.1.5, step 1 of the iki client).
iki-client is the transport. It says hello with a token, reads the iki's view each frame, sends intents, and reconnects with backoff when the socket drops. It stops for good when the claim ends: revoked, released, expired, or the iki died. The token is a secret that never prints, not even in a debug log. The library holds no decisions, so any later player (a script, a model, an admin tool) can reuse it.
ikigai-agent is the player. It has a Mind that looks at the iki's view and returns at most one wish. The ScriptedMind is the only mind so far, and its rules are short:
1. At night, or when energy is low, stay home. 2. If income is low, put income first. 3. If love, skill or purpose is low, put the lowest one first (for love it may seek out a friend instead). 4. Otherwise say nothing and let the iki live by its own rules.
The agent logs one line per decision: what it saw and what it wanted.
The server stays the authority
An agent gets no powers a person lacks. An iki accepts one intent per game hour and answers rate_limited beyond that, whoever sends it. The agent also keeps that rhythm itself, so a mind cannot spam. An intent is a bias, not an order: it nudges what the iki decides at home. The test for the client runs against the real server binary, not a mock, so it proves the client against what the server really does.
Over 2.5 game days, the script followed its rules
The run used the real server, a demo town, and iki 12, for 150 seconds at 24x (about 2.5 game days).
- The agent sent 5 intents. The server accepted all 5, rejected none and rate-limited none.
- At night it stayed home. In the morning it put skill first. When income ran low it put income first.
- From the first view to the last, the four circles moved like this:
| circle | first view | last view | |---|---|---| | love | 76 | 90 | | skill | 62 | 82 | | purpose | 57 | 86 | | income | 70 | 35 |
Income fell during the run. I do not read more into the table. There was no control run of the same iki without an agent, so I cannot say the agent caused any of these changes, good or bad. A control run is the first thing to add before I claim anything about how well a mind plays.
What's next
An iki that plays itself is only interesting once the mind is better than a script. In the order I want them:
- An LLM mind (ikigai-d6w.1.7). It would read the same view and pick one of the same intents, with the script as its fallback when the model is slow or wrong. - The welcome tells clients the intent window (ikigai-odm0). Today the agent hardcodes the length of a game hour and treats rate_limited as the truth. The server should simply say it. - Goods that wear out (ikigai-lyt0). The market gives ikis something to want again once a book or a bicycle can be used up.
beads: ikigai-d6w.1.5, ikigai-ianb