arizuko

arizuko › products › Trip planner (May)

Trip planner (May)

State the brief once. May researches, synthesises, and delivers a day-by-day itinerary with logistics, visa, budget, and packing. Preferences persist across every future trip.

May is an agent for one user, with your travel profile and your past trips. The template is in ant/examples/trip/.

The persona tells May to ask before she researches

The persona tells May to cite sources in the text, for example "per the Japan visa gov page" or "per Lonely Planet §Kyoto". It tells her to ask about the dates, the budget and the travel style before the research, and to start the plan only when these are clear. It tells her not to invent visa rules, prices or opening hours, but to check them or say that she is not sure. The output is a day-by-day schedule, a logistics block, a budget estimate and a packing list.

Six parts make the planner

Brief and questions
The agent reads your brief and your travel profile in facts/preferences.md. It asks for the missing facts, for example dates, budget range, pace and food limits, and then starts the research.
Preferences file
facts/preferences.md is the traveller profile: the usual budget range, the type of accommodation, the pace, food limits and interests. The operator fills it before the first use. The agent updates it when you mention a preference.
Research with oracle
For each destination, May searches the web for current conditions, visa rules, transport and accommodation. Then the oracle skill combines the sources into one plan. Oracle accepts a host Codex login or a CODEX_API_KEY or OPENAI_API_KEY.
Structured output
The itinerary is one document: the daily schedule, the logistics for flights and ground transport, the visa block, the budget estimate and the packing list. May saves it to facts/trips/YYYY-<dest>.md.
Trip archive
Every finished trip stays in facts/trips/. A question such as "how did the Kyoto trip go?" reads from the archive.
Published itinerary, optional
The agent can write an HTML version to ~/public_html/. You can then share a link with travel companions, and they need no chat access.

A sample exchange

telegram · DM

  user   10 days in Japan, late October, food focus, mid-budget
  may    Got it — a few questions before I start:
         1. Rough budget per day (not counting flights)?
         2. Accommodation style: hostel, business hotel, ryokan, or mix?
         3. Any dietary restrictions I should route around?
         4. Flying into Tokyo or open to landing elsewhere?

  user   ~¥15k/day, mix of business hotel + one ryokan, no restrictions,
         fine to fly into Tokyo
  may    Perfect. I'll research: Tokyo (3d), Hakone (1d), Kyoto (3d),
         Osaka (2d), day-trip to Nara. Pulling current visa rules,
         Oct rail passes, and food spots. Back in a few minutes.

  [May runs web search + oracle synthesis]

  may    Here's the plan — 10 days, food-first, mid-budget. Sending
         as a file.

  [sends facts/trips/2026-japan.md]

         Summary: Tokyo 3 nights (Shinjuku base, Tsukiji + Yanaka markets,
         ramen crawl), Hakone overnight ryokan (Fuji view, kaiseki dinner),
         Kyoto 3 nights (Nishiki market, Fushimi Inari at dawn, Gion dinner),
         Osaka 2 nights (Dotonbori, Kuromon market, takoyaki circuit),
         Nara half-day. Budget est. ~¥142k total (ex flights).

The planner is a single-user shape

The reality agent has the same single-user shape for life context instead of travel. The supermarket agent has a shared folder and no memory. The team shapes start at slack-team.

The product lists five skills

web
Live search for visa rules, transport and current prices.
oracle
Combines the sources into one plan using a Codex login or API key.
recall-memories and find
Read the preferences and find past trips.
diary
Records each research session for later recall.

Telegram is the main channel

Telegram fits a personal planner for one user. WhatsApp works for users without Telegram. The asymmetric pattern of the reality agent also works here: route WhatsApp to #observe, and May brings the relevant messages into the Telegram chat. The reality agent case study shows the route table.

Files stay on your server and model calls go to Anthropic

Your server
The preferences, the trip archive and the diary are files under /srv/data/arizuko_<name>/groups/. The conversation history is on the store server of the instance.
Outbound paths
Telegram for the bot, Anthropic for model calls, and oracle through a Codex login or API key. Web research goes through egress, and you allow the domains that May can reach.
One user
The deployment is personal, so no per-user memory files exist. The traveller profile is the whole of facts/preferences.md.

A package selection installs Telegram

arizuko create -i travel --product trip
$EDITOR /srv/data/arizuko_travel/.env    # TELEGRAM_BOT_TOKEN, CODEX_API_KEY, a model key
$EDITOR /srv/data/arizuko_travel/groups/main/facts/preferences.md

Start the instance as a systemd service using getting started. Select the adapter package and restart the service:

arizuko package add -i travel catalog:teled
sudo systemctl restart arizuko_travel
arizuko route -i travel add 'platform=telegram' main

The operator setup guide has every step: the preferences file, the route and the check of the first research run.

Five pages give the details

primitives
The same pipeline in a single-user folder: the travel profile is the state, and the oracle skill runs in one turn.
Reality agent
The same single-user shape for life context, and how the folder grows over time.
skills
How skills such as oracle work.
routing modes
The #observe fragment for an input-only channel.
egress
The egress allowlist of each folder.