mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-21 22:01:41 +00:00
Clarify that cut point is always user/assistant/bash, never tool result
This commit is contained in:
parent
5f41a384cc
commit
35a40b2197
1 changed files with 7 additions and 7 deletions
|
|
@ -209,7 +209,7 @@ After compaction (new entry appended):
|
||||||
on reload on reload (stored in this entry)
|
on reload on reload (stored in this entry)
|
||||||
```
|
```
|
||||||
|
|
||||||
The session file is append-only. When loading, the session loader finds the latest compaction entry, uses its summary, then loads messages starting from `firstKeptEntryIndex`.
|
The session file is append-only. When loading, the session loader finds the latest compaction entry, uses its summary, then loads messages starting from `firstKeptEntryIndex`. The cut point is always a user, assistant, or bashExecution message (never a tool result, which must stay with its tool call).
|
||||||
|
|
||||||
```
|
```
|
||||||
What gets sent to the LLM as context:
|
What gets sent to the LLM as context:
|
||||||
|
|
@ -222,7 +222,7 @@ What gets sent to the LLM as context:
|
||||||
summary firstKeptEntryIndex onwards
|
summary firstKeptEntryIndex onwards
|
||||||
```
|
```
|
||||||
|
|
||||||
**Split turns:** When a single turn is too large, the cut point may land mid-turn (at an assistant message). In this case `cutPoint.isSplitTurn = true`:
|
**Split turns:** When a single turn is too large, the cut point may land mid-turn at an assistant message. In this case `cutPoint.isSplitTurn = true`:
|
||||||
|
|
||||||
```
|
```
|
||||||
Split turn example (one huge turn that exceeds keepRecentTokens):
|
Split turn example (one huge turn that exceeds keepRecentTokens):
|
||||||
|
|
@ -233,8 +233,8 @@ Split turn example (one huge turn that exceeds keepRecentTokens):
|
||||||
└────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
|
└────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
|
||||||
↑ ↑
|
↑ ↑
|
||||||
turnStartIndex = 1 firstKeptEntryIndex = 7
|
turnStartIndex = 1 firstKeptEntryIndex = 7
|
||||||
│ │
|
│ │ (must be user/asst/bash, not tool)
|
||||||
└────── turn prefix ────────┘ (idx 1-6, summarized separately)
|
└────────── turn prefix ───────────┘ (idx 1-6, summarized separately)
|
||||||
└── kept messages (idx 7-9)
|
└── kept messages (idx 7-9)
|
||||||
|
|
||||||
messagesToSummarize = [] (no complete turns before this one)
|
messagesToSummarize = [] (no complete turns before this one)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue