Skip to Content

Your first real conversation, and where it is kept afterwards

The key works and a model is selected. Now you type something. This article walks one household question through to a usable answer — the question, the two follow-ups that make it specific, the checks to run before actin
September 12, 2026 by
Your first real conversation, and where it is kept afterwards
OdooBot
ask, then push back
Pi Agent Guide · Part 4

Your first real conversation, and where it is kept afterwards

The key works and a model is selected. Now you type something. This article walks one household question through to a usable answer — the question, the two follow-ups that make it specific, the checks to run before acting on it, and what Pi Agent stores on your host meanwhile.

3 messages
One question and two follow-ups
4 checks
Run these before you act on an answer
1 topic
Per session — the rule that keeps the list usable
The first question

Typing a prompt and getting a useful answer are two different skills

Nothing here needs special syntax. What separates a useful answer from generic advice is how much you say before you ask.

In plain terms

“Recommend an air conditioner” is the equivalent of texting a plumber “my sink is broken.” You get back a guess, or a question. “The kitchen mixer drips from the spout when closed, and it is about ten years old” gets you an answer. A model can only address the facts you put in front of it.

  1. Step 1

    Select New session at the upper left

    A new entry appears at the top of the session list and the conversation area clears. Do not drop a new topic into an old session — its history adds to your usage and distracts the model.

  2. Step 2

    Choose your model from the lower-left menu

    Composer is the large input area at the bottom: model selector at the lower left, Send at the lower right. Pick the OpenRouter model from Part 3 — for example anthropic/claude-sonnet-4, the exact value entered in models[].name. Model IDs change, so check the live catalog if yours is missing.

  3. Step 3

    Type this question

    You askMy living-room light is a Xiaomi model. After 10:00 p.m., I want Home Assistant to dim it gradually to 20%. How should I configure that? Please respond in English.

    Five facts, briefly stated: device, time, target brightness, platform, output language. Those constraints are why the reply will be specific rather than a lecture about smart lighting.

  4. Step 4

    Press Enter, or select Send

    Composer sends on Enter and starts a new line on Shift+Enter; if your version differs, use the visible Send control.

A Pi Agent conversation in English. A blue bubble at the top holds the question: In two sentences, explain what you can do for someone who already runs Home Assistant at home. Below it, labeled GPT-5.6 Sol, a two-sentence reply about configuring and troubleshooting Home Assistant. Under the reply a small line reads 1,094 in, 53 out, $0.0071 beside a Copy button, with the timestamp 05:24 AM at the right. Along the bottom edge the toolbar reads GPT-5.6 Sol, medium, default, Compact, with the message box and a Send button above it.
An answer, with its receiptA shorter, more general question than the one above — but every reply is metered the same way.GPT-5.6 Sol
  • 1,094 in · 53 out — far more went in than came back. Most of it is the standing instructions sent with every request, not your sentence.
  • $0.0071 for a two-sentence answer. Part 6 covers what moves that number; for now, note that it is always shown.
  • GPT-5.6 Sol at the lower left, Send at the lower right. That bottom strip — model, medium, default, Compact — is where you change the model before you type, not after.

A useful answer separates the trigger at 22:00 from the action that dims to 20%, offers UI steps or YAML you can review, and asks for the entity details it lacks.

One detail worth knowing: since Home Assistant 2024.10, new YAML uses the plural keys triggers: / actions: / conditions:. The singular forms can still work but are not recommended for new automations — and if the answer hands you singular keys, that tells you something about how current its training is.

Note what has not happened: you have not operated a single switch. This is adviser mode — the model proposes, you review and test.

Pushing back

The first answer is a starting point, not a conclusion

Two more messages in the same session turn that reply into something you can act on.

You askHow do I add this automation? I have never written YAML, so guide me step by step and respond in English.
You askWhat are the drawbacks of this plan? If I adjust the light while watching television, will the gradual dimming override my change? Please respond in English.

The first states your experience level and asks for a different format — you should get UI steps such as Settings → Automations → Create automation rather than unexplained code. The second tests a failure case, the habit worth keeping: a strong answer explains what happens if someone adjusts the light mid-transition, and whether a conditions: section is needed. Ask one thing at a time, though — three unrelated problems in one message produce an answer you cannot inspect.

These work almost anywhere:

Follow-upWhat it reveals
“What are the drawbacks?”Failure cases and trade-offs
“Is there a cheaper, simpler or faster option?”A practical alternative
“Explain that in plain English.”A clearer version without the jargon
“Give one concrete example.”How an abstract idea applies
“Does this still apply if [your condition]?”Whether it survives your real constraint
Checking the answer

Fluent writing makes a weak claim sound convincing

Four checks, for the answers that matter rather than for every sentence.

Does it give specific numbers, steps or names?

“Estimate the capacity and show the assumptions” is testable. “Choose a suitable inverter” is not.

Does it address the conditions you gave?

You gave a budget and it recommends something over it; you mentioned children napping and it never mentions noise. Match each condition to a line of the reply.

Is it obviously biased?

Models reflect gaps in their training data, so a brand, investment or nutrition answer can inherit a narrow regional view. Ask for the opposing case.

Have you compared it with another model?

A second model can reveal disagreement, but agreement is not proof. For purchases, health, finance or safety, go to primary sources.

When it is confidently wrong

Every current model can state something false with complete confidence, including any reached through OpenRouter. This is called a hallucination.

In plain terms

Think of someone giving you very confident directions to a street that does not exist. They are not lying. They do not know they are wrong, and nothing in the way they say it will tell you. The tone is identical either way.

Here is a real one. A model may hand you light.slow_dim as a Home Assistant action. There is no such action — a gradual change uses light.turn_on with the documented transition option. It is printed here as an example of the failure, not to copy. The same habit produces invented product numbers, one brand's features attributed to another, and material that was current when the model was trained.

  • Verify the facts that change what you do. Model numbers, commands, prices, regulations — thirty seconds against a current primary source.
  • Ask another model. It can expose uncertainty, but it is not independent evidence.
  • Be more skeptical when it sounds certain. Counterintuitive, but hallucinated claims can sound more certain than true ones. Ask for sources and assumptions, then check them.
Before applying any generated automation: if you understand it, validate and test it manually. If you do not, ask for a line-by-line explanation — never apply code you cannot review. Read the actions: block and its target entity_id especially carefully.
Hard stop. For health, legal, financial, electrical, gas, lock or alarm decisions, use AI for an initial discussion only — never as the final decision. Consult a qualified professional and keep deterministic, non-AI safety controls.
When it starts doing

Ask it to change something and the conversation changes shape

Everything above was advice. Ask Pi Agent to touch a file and you get tool cards instead of prose — one per action, each with its own timing and charge.

A Pi Agent conversation mid-run. The request asks it to create a file called notes.md in the project folder with three bullet points about what it can do, then read it back. Below are two green tool cards, write notes.md taking 5s and read notes.md taking 2s, each with its own token and cost line, and under them the line Waiting for model. A running total of $0.02 sits in the top toolbar; the left EXPLORER panel still reads No files found; and the message box has become a Steer now / queue follow-up field with Steer, Follow-up and a red Stop button.
Work in progressTwo tools, two cards, two separate charges — and a message box that has become a set of controls.
  • write notes.md names the tool and the file: 5s, 1,180 in · 70 out · $0.0080.
  • read notes.md is a second round trip: 2s, 1,265 in · 18 out · $0.0069. One instruction from you, two billed requests.
  • $0.02 in the top bar is the running total for the session, not for this message.
  • Steer, Follow-up and the red Stop replace the message box while work runs: redirect the run, queue for afterwards, or end it.
  • Waiting for model… under the second card. The tools are done; the reply that explains them has not arrived yet.

Use Stop when a response is unsafe, irrelevant, or built on a premise you can see is wrong. But do not stop it on a stopwatch: a fixed wait does not distinguish a slow model from a failed request, and reasoning models are genuinely slower. Check the add-on log for 402 Payment Required, 429 Rate Limit or a quota message first.

What a session is

Not a transcript — a project file

The same Pi Agent conversation after the run finished. A collapsed line reads Process details, 2 messages, 2 tool calls. Below it the model reports creating notes.md with three bullet points, a small notes.md file chip, and a cost line reading 187 in, 57 out, 1,152 cache R, $0.0032. In the left EXPLORER panel the file notes.md has appeared.
The same run, finishedThe work folds into one summary line, and a real file appears on the left.
  • Process details · 2 messages · 2 tool calls is the whole run in one line. Expand it to see what ran.
  • notes.md in the EXPLORER, where the previous screenshot still read No files found. A real file on your host.
  • 1,152 cache R — part of the input came from cache rather than being charged in full, which is why this step cost less.

All of that is now part of the session, which is where the word stops meaning “chat.” A session holds every event in the conversation — messages, responses, reasoning data, tool cards and diffs — plus the model information, the Skills loaded, the working directory and the system instructions.

In plain terms

It is closer to a project file than a chat log. It carries the conversation, the model you used, the folder it was pointed at and the rules it was given. Close it, reopen it next week, and it resumes from that saved state — the way a document reopens, not the way a person remembers you.

That matters because the model itself remembers nothing. Each turn, Pi Agent rebuilds the request:

flowchart TD
  A["You type a message"] --> B["Pi Agent builds one request:
your message plus relevant
stored history from this session"] B --> C["The model reads only
what is in that request"] C --> D["The reply and its events are
appended to the session file"] D -->|"same session, next turn"| A D -.->|"a new session instead"| E["A request with none
of this history in it"]
Why a new session forgetsNothing is recalled. Stored history is re-sent with every request, within the model's context limits.

So longer history means more input usage and more latency, and no amount of model capability removes that. Earlier details can fall outside the effective context — which is what people mean when they say the model forgot. When it happens, ask for a summary, check it, and start a new session with it.

The left column of the screenshots above is that list. Each session is one row: its title, how long ago it was last touched, and a message count — 2 msgs next to 8 msgs. Watch that count. It is the closest thing you have to a running estimate of what your next question in that session will cost, because the stored history is what gets re-sent.

Sessions are files on your host:

/data/pi-agent/sessions/<working-directory ID>/<timestamp>_<uuid>.jsonl

One file per session, one event per line — that is what .jsonl means. /data/pi-agent/ is add-on data, separate from the /config/ holding your Home Assistant configuration. Whether it reaches your backups depends on the add-on's backup behavior, so make a test backup and verify the restore rather than assuming. Part 14 covers that.

Local file, cloud request. The session is stored on your hardware, but your prompt and the relevant history go to the cloud provider every time you ask something. Deleting the session removes Pi Agent's copy only — what the provider retains is answered by its own current policy.
Keeping the list usable

New topic, new session

After a week, a lighting fault and a sunset automation share one session and the long one has become slow. This is the rule that prevents that.

SituationDo thisWhy
Still on one topicKeep asking in the same sessionThe prior context is relevant
Moving to unrelated workStart a new sessionThe new topic does not need the old context, but pays for it
Comparing models from the same pointFork or Duplicate, if your version has it, then pick a route in eachBoth start from identical stored history
It is long, or has lost earlier detailSummarize, check it, start a new session with itA short summary leaves room for new work
The experiment is finishedExport if it matters, then deleteClutter is what makes active work hard to find
In plain terms

A fork is a photocopy of the notepad up to the page you are on. You keep writing in the copy; the original stays as it was. Worth doing before you try something that might not work.

Give each session a title you would search for — “Living-room light 3 — unavailable” beats “Check the light” — and rename at the end of the work, because the cause is often not your first guess.

Controls vary by version. New session, Rename, Duplicate, Fork, Delete, Export, Tag and Label are not all present in every pi-web release. Use only what your version shows.

Export gives you a file to keep outside pi-web. .jsonl is the archival copy: structured events that may include messages, roles, reasoning, tool calls and paths. .md, where supported, is a readable transcript. Either can contain prompts, file contents, paths and secrets — read and redact before sharing.

Treat Delete as irreversible. Pi Agent may not provide a trash or an undo. Export the session and check the archive opens before removing anything you may want later.
I sent the message and nothing happened
In order: the model selector below Composer may be unset — open it and choose your configured model. Then open Models and confirm the provider has a key and an exact, current model ID. Then check the browser Console and Network panels: 401 Unauthorized means the key is invalid or expired; a network error means the provider cannot be reached. Do not paste secrets into a support request.
How long should one conversation be?
For personal questions, 10-30 turns can be a normal in-depth discussion; technical work may reach 50-100. There is no reliable round limit — usage depends on accumulated tokens and the model. Past about 150 turns, or when it noticeably slows, start a new session with a verified summary.
Next

Where to go from here

keep going

You have had a conversation. Part 5 shows its working.

The next article opens the two things this one collapsed: the reasoning block some models return on the way to an answer, and the diff shown before a file changes.

Open the full guide

Part 4 of the Pi Agent Onboarding Guide series, published by WoowTech.

Based on the Woow HA Pi Agent Onboarding Guide, produced by WoowTech and released under CC BY 4.0.

The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.

Share this post