human behavior: classifier gate, pacing, splitting, quiet hours, stable prompt prefix
This commit is contained in:
@@ -66,13 +66,23 @@ link syntax from the model reads as noise.
|
||||
When the envelope `channel` is null/none/empty, the response channel
|
||||
is the channel the message came from.
|
||||
|
||||
### ENV-10 — System prompt template substitution (coverage: test)
|
||||
### ENV-10 — Dynamic context reaches the system prompt (coverage: test)
|
||||
|
||||
`message()` substitutes `{date}` (YYYY-MM-DD), `{time}`, `{memory}`
|
||||
(the assembled memory block — legacy memory string while the
|
||||
structured memory is inactive, see MEM-10) in the system prompt;
|
||||
`{news}` is replaced with the news file content when the configured
|
||||
file exists and stays literal when it does not.
|
||||
The system message carries the current date, time, news (when the
|
||||
configured file exists) and the memory block (legacy string while
|
||||
structured memory is inactive, see MEM-10). Since FDB-008 these live
|
||||
in a context suffix, not inline — see ENV-20; legacy `{date}`,
|
||||
`{time}`, `{news}`, `{memory}` placeholders in operator templates are
|
||||
stripped.
|
||||
|
||||
### ENV-20 — Persona prefix is byte-stable (coverage: test)
|
||||
|
||||
`message()` renders the system message as: static persona text
|
||||
(config template with all dynamic placeholders removed) followed by a
|
||||
`## Context` suffix holding date, time, news and memory. Two calls in
|
||||
the same channel produce byte-identical persona prefixes — the prompt
|
||||
cache can actually hit (the old inline `{date}`/`{time}` substitution
|
||||
invalidated it every minute).
|
||||
|
||||
### ENV-11 — Per-channel history shrink prefers busy channels (coverage: test)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user