Files
nisse/nisse-core
dongarandClaude Opus 5.5 cb638fe687
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m57s
CI / e2e (pull_request) Successful in 4m57s
Compaction: the model's notes replace the middle of a long run (#158)
Before each driver call, over compact_at (0.6) of the prompt budget, the
same model is asked for notes over the very request it was about to get,
plus one message, so the server's cache covers all but the notes. The notes,
with code's list of the calls they replace, become a compaction event that
renders in place of its range, keeping word for word what started the work
and the last few turns. Rare, large steps keep the prompt's start unchanged
between them. A later compaction folds in the earlier; one from an earlier
run's view is hidden.

Failed notes are logged and fitting takes over. Fitting now applies
compactions before it measures, records what it cuts (Trim) and logs each
cut as context.trimmed. Wired into both agents' drivers and the benchmark;
nisse-dev's helper loop is a follow-up.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
2026-10-17 22:51:36 +00:00
..
2026-10-13 18:37:01 +00:00
2026-10-13 21:31:29 +00:00

nisse-core

The shared library the Nisse agents sit on (Part L of the architecture). It never imports an agent. Packages follow the architecture's sections:

  • models (L9, L7): llm (the one client), catalog and probe (what the models are), render and render_anthropic (request bodies from the log), context (fitting a request to its window, L6).
  • log (L7, L6): canonical (the log's events), views (what each role is shown of the others).
  • state (L8): store (an agent subclasses StateStore for its own tables, roles and views), reconcile, worker, cancel, dump.
  • knowledge (L10, L6.4): vault, memory.
  • conversation (L5): transport, matrix.
  • execution (L13): ssh (SSH to a tool VM); testing (a throwaway sshd for tests).
  • authority (P3, P4, L4): actions (Action, Verdict, and static reading of shell commands, which each agent's fast-path rules build on; nisse-dev's are in nisse_dev.loop.actions).
  • loop (L2): driver (a driver run, with the agent's waiting tools and executor), tools (the control tools any agent offers), expert (ask_expert, L9). Each agent keeps its own scheduler.
  • knowledge also has handlers: the vault and memory as control tools.
  • config: the shared parts of an agent's configuration.
  • At the top, until each gains a second module: gitea (the tracker and forge, L1), oplog and envfile (L12).