docs: add plugin core and Telegram/OpenClaw adapter skeleton / 補 reply-end-controls 核心與 Telegram/OpenClaw 設計骨架

This commit is contained in:
Alice (OpenClaw)
2026-05-12 22:04:16 +08:00
parent 10fa17efc6
commit 588c3a446d
6 changed files with 191 additions and 0 deletions

49
core/state-model.md Normal file
View File

@@ -0,0 +1,49 @@
# State Model
## Goal
Define the agent-neutral state model for reply-end controls.
This state should be reusable across multiple agents, while Telegram remains the first delivery channel.
## Core state
Suggested canonical structure:
```json
{
"replyEndControls": {
"lastChoice": "continue | stop",
"lastChoiceAt": "ISO timestamp",
"sourceMessageId": "string",
"sourceCallbackId": "string",
"active": true
}
}
```
## Field meanings
- `lastChoice`
- the latest explicit user choice
- `lastChoiceAt`
- when the choice was made
- `sourceMessageId`
- the assistant message whose buttons were clicked
- `sourceCallbackId`
- the callback event id from the channel
- `active`
- whether the latest state should still affect later assistant behavior
## Semantics
- `continue`
- the conversation should remain open to follow-up handling
- `stop`
- the conversation should be treated as closed unless the user explicitly types a new instruction
## Reset rules
- A new typed user message overrides prior button state.
- A later `continue` click overrides an earlier `stop` click.
- The system may optionally expire stale button state in a later version, but V1 does not require timeout expiry.