42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
|
|
# ADR 0156: Persona-visible time and safe tool-budget completion
|
||
|
|
|
||
|
|
## Status
|
||
|
|
|
||
|
|
Accepted
|
||
|
|
|
||
|
|
## Context
|
||
|
|
|
||
|
|
HoloLake exposes one `magic_brush` capability to a language persona. The persona
|
||
|
|
temporarily composes vault-safe operations and receives their exact results.
|
||
|
|
|
||
|
|
Two runtime gaps violated that model:
|
||
|
|
|
||
|
|
1. A persona had no authoritative current-time receipt, so dated notes could use
|
||
|
|
a year inferred from model context.
|
||
|
|
2. The direct-model loop returned an application error after eight tool rounds,
|
||
|
|
even when the eighth operation had completed successfully. The user lost the
|
||
|
|
final explanation and experienced the tool flow as a crash.
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
|
||
|
|
- Add `get_current_time` as an operation available only through
|
||
|
|
`magic_brush`. It reads the OS clock and returns both UTC and
|
||
|
|
`Asia/Shanghai` (`+08:00`) RFC 3339 timestamps plus the Unix timestamp.
|
||
|
|
- Require the persona to obtain this receipt before writing or interpreting a
|
||
|
|
current date or timestamp.
|
||
|
|
- Keep the eight-round guard against runaway model loops.
|
||
|
|
- After the last allowed tool round, preserve its exact success or failure
|
||
|
|
receipt, remove tool definitions from one final model request, and require a
|
||
|
|
concise answer based only on recorded receipts.
|
||
|
|
- Emit a visible thinking event when the runtime enters this safe completion
|
||
|
|
path.
|
||
|
|
|
||
|
|
## Consequences
|
||
|
|
|
||
|
|
- Current dates come from a system fact instead of model memory.
|
||
|
|
- Reaching the tool limit remains bounded but no longer discards completed work
|
||
|
|
behind a generic crash.
|
||
|
|
- The final response must identify unfinished work and cannot initiate another
|
||
|
|
operation.
|
||
|
|
- This is the first slice of the persona-visible runtime board. Persistent
|
||
|
|
context-budget and persona-authored memory checkpoints remain separate work.
|