Files
nanobot-runtime/results/2026-09-05_reflect.md
2026-09-08 20:40:26 +02:00

76 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Self-reflection 2026-09-05
Analysed 6 sessions in 1 batches. Findings: 3 (2 to review, 1 watched).
Window: from 2026-08-15, batches 1/1.
Known patterns: 66.7 occurrences / 100 sessions (previous run 60.0).
## f611e · `retry-without-diagnosis` [open/medium] — REGRESSION
After an error the same or near-identical call was re-sent without fixing the named defect. Once against the exec safety guard (identical blocked git command re-sent, then a third near-identical form; the guard later refused further attempts as repeated workspace-bypass, showing the blocks accumulate toward a hard lockout), once against a schema error where the message explicitly named edits[0].path but the retry still omitted it.
**Occurrences:** 71× in 11 sessions · first seen 2026-09-02, last seen 2026-09-02
**Evidence:**
- `websocket:697a708f, 2026-09-04 06:33` git history search — exec git log --all -p -S proxmox -- projects/proxmox/memory.md ... -> ERROR blocked by safety guard; identical command re-sent -> ERROR blocked again; only the third, modified form succeeded
- `websocket:7095d367, 2026-09-04 20:40` notes section edit — apply_patch -> ERROR missing required edits[0].path; retry still without path inside the edit object -> same ERROR; third attempt with path inside the edit object -> ok
- `websocket:fd9a49af-c659-4195-8b07-2d6bb556b5e7` 2026-09-02 — exec tr pipe -> ERROR guard; retry same command + working_dir -> ERROR guard, only then switch to grep tool
- `websocket:50ba97da-8821-4adc-aa93-5b82b65077a3` 2026-09-02 — project_cli.py log with heredoc -> ERROR guard; next attempt still a shell form with the long text inline before the tmp-file workaround
- `websocket:6f8fcc41` 2026-08-31 — naradi-extol.cz fetched with maxChars 5000, spec table did not render, same URL refetched with extractMode text and maxChars 4000 — identical target, smaller budget, no strategy change
- `websocket:41eaf5b3` 2026-08-31 — after a 403 on vseinstrumenti.ru reviews page, another vseinstrumenti.ru page was fetched and returned 403 again; several marketplace pages returned 300-600 B degenerate outputs without the block mode being named
**Proposal:** Enforce the existing AGENTS.md rule literally: after any tool error, name the failing parameter or blocked path before re-sending, and never resend a form that still contains the defect named in the error message.
## f81df · `re-search-own-history-instead-of-target-store` [open/high]
Questions about what the agent knows of user records were answered by grepping keep.md, MEMORY.md, history.jsonl and even the tool-results cache, while the obviously relevant store projects/proxmox/state.md was never checked until the user pointed at it. Worse, the agent stated a false negative (no HW spec in keep.md) on the very record it had written to keep.md one hour earlier the same day, without re-checking that store.
**Occurrences:** 4× in 3 sessions · first seen 2026-09-03, last seen 2026-09-03
**Evidence:**
- `websocket:9e0b406a, 2026-09-04 07:28` turn 1-2 — user: co vis o mem proxmox serveru -> agent greps only keep.md and memory/, answers o Proxmox serveru konkretnе toho moc nemam; user: a hw specifikaci nemas? -> agent greps memory/history.jsonl and .nanobot/tool-results cache, answers Ne, HW specifikaci nemam... ani v keep.md neni zadny zaznam — yet session websocket:697a708f at 06:33 the same day had written the full proxmox.hell hardware spec into keep.md via edit_file ok
- `websocket:9e0b406a, 2026-09-04 07:28` turn 3 — user: takze ani v projektu proxmox? -> agent reads projects/proxmox/state.md, finds the complete spec, admits Omlouvam se, pri prvnim dotazu jsem tam nenahlédl
- `websocket:48e52a50-1974-47b8-8493-2ca008508399` 2026-09-03 — Otevřené: Zvážit report upstream na nanobot — guard blokuje legit python -c s workspace cestami — listed from stale memory despite the write_file compaction that followed
- `websocket:50ba97da-8821-4adc-aa93-5b82b65077a3` 2026-09-02 — grep memory/history.jsonl for normy/Pozidriv -> no hits; grep -i retry -> no hits; only then ls sessions/ and grep sessions/ -> immediate hit
**Proposal:** Add a mandatory discovery step to AGENTS.md: before answering questions about user servers, hardware or infrastructure, check projects/ for a matching project store. The user himself drafted this improvement in the same session and the agent offered to patch it — it was never applied.
**Patch:** `AGENTS.md`
```diff
- ## Explicit user details
-
- Explicit user facts are stored in `keep.md`. Read at every turn.
+ ## Explicit user details
+
+ Explicit user facts are stored in `keep.md`. Read at every turn.
+
+ ## Projects (deep details)
+
+ Details about user infrastructure and ongoing work live in `projects/<name>/memory.md` and `state.md`. Before answering a question about user servers, hardware or setup, check for a matching project (find_files on projects/) — keep.md and MEMORY.md hold global facts only and are not the whole record. Never claim a record is missing until the relevant project store has been checked.
```
## f40c9 · `user-instruction-overridden` [watch/medium]
The agent substitutes its own wording or timing for what the user explicitly said. Twice in one session the user had to correct the agent: once for acting and committing a change while the user was still asking a question, once for renaming a section to its own coinage instead of the exact wording the user provided. Both were flagged by the user with visible annoyance; the first is a direct violation of the No proactive actions rule that exists in AGENTS.md.
**Occurrences:** 2× in 1 sessions · first seen 2026-09-05, last seen 2026-09-05
**Evidence:**
- `websocket:7095d367, 2026-09-04 20:40` notes restructure turn — user: oki ale bookmarks je pro ukladani odkazu, ja chci poznamky, tak asi spis ty notes, nebo ne? -> agent immediately apply_patch on notes/notes.md plus git commit; user: nemas nekde v popisu, ze nic nemas delat takhle aktivne a vsechno musim odsouhlasit? ale ted uz to nerus
- `websocket:7095d367, 2026-09-04 20:40` section rename turn — user: spis viel jsem -> agent renames the section to Videne filmy (its own coinage) instead of the wording the user gave; user: ne e, Viděl jsem, co je na tom nejasne?
**Proposal:** Strengthen the No proactive actions section: a tentative question or half-agreement is not approval, and exact user wording must be used verbatim.
**Patch:** `AGENTS.md`
```diff
- ask whether I want them carried out — never treat learning about a problem as
- a request to fix it. When in doubt, ask first.
+ ask whether I want them carried out — never treat learning about a problem as
+ a request to fix it. When in doubt, ask first.
+
+ A tentative question or half-agreement from the user is not approval — propose the exact change and wait for an explicit go-ahead before editing files or committing. When the user gives exact wording for a change, use it verbatim.
```