4.2 KiB
reply-end-controls - Telegram + OpenClaw PoC Success Report
- Date: 2026-05-13
- Scope: Telegram-only PoC in
openclawtest - Status: PoC successful
Executive summary
The Telegram + OpenClaw PoC is successful.
The project has now proven the full core path from reply decoration to callback-triggered state persistence and visible behavior influence.
This does not mean the feature is production-complete. It means the main V1 proof-of-concept chain is real and working on a live Telegram bot.
What was proven
1. Assistant replies can show reply-end buttons
Telegram assistant replies successfully displayed two inline buttons:
A. 繼續B. 就這樣吧,不需要額外處理
This proves that the Telegram outbound reply chain can be decorated with reply-end controls.
2. Callback clicks can be received
The callback flow was debugged and proven through:
- visible button click effects
- explicit callback acknowledgement replies
- callback-specific debug logging
This proves that Telegram callback queries are being received and handled by the patched OpenClaw Telegram runtime.
3. Callback state can be persisted
After clicking a reply-end button, a state file was successfully written:
~/.openclaw/reply-end-controls.json
Observed stored fields included:
lastChoicelastChoiceAtsourceMessageIdsourceCallbackIdactive
This proves that button selection is not just a UI event; it becomes durable runtime state.
4. Callback flow can update Telegram UI
When the continue button was clicked, the Telegram UI updated and showed the selected state, confirming that callback handling can mutate the original inline keyboard state.
5. Callback flow can send visible acknowledgement replies
The patched handler successfully emitted visible confirmation replies such as:
reply-end-controls: continue receivedreply-end-controls: stop received
This provides a strong human-visible proof that callback handling executed.
6. Stored stop state can influence the next assistant turn
After stop was selected, a later inbound message was processed with a stop-state instruction injected before the assistant run.
Observed outcome:
- the assistant still replied,
- but it became materially more restrained,
- and it stopped producing the earlier style of long proactive extension / checklist expansion.
This proves the state is not merely recorded; it can influence later assistant behavior.
What exactly succeeded end-to-end
The following chain is now real and working:
- assistant reply generated
- Telegram reply-end buttons attached
- user clicks
continueorstop - callback query reaches OpenClaw Telegram runtime
- callback state is persisted
- UI/acknowledgement response can be generated
- later assistant behavior can read that state and change tone/continuation behavior
Limits of the current PoC
The PoC is successful, but not finished as a product feature.
1. Stop behavior is only partially hardened
The stop choice clearly influences behavior, but the assistant can still continue in a softened internal way instead of fully hard-stopping.
Current result:
- the assistant becomes more restrained
- but may still continue some internal follow-up rather than ending absolutely
2. The implementation currently uses local patches inside the openclawtest runtime
The PoC proves feasibility, but some of the changes are currently local runtime patches rather than a clean packaged integration path.
3. Only Telegram is in scope
This project is intentionally Telegram-only right now.
4. The callback/state path needs productization
The PoC shows the path works. It still needs to be cleaned into a maintainable, reusable plugin/integration structure.
Recommended next step
The most sensible next step after this PoC is:
- turn the Telegram PoC patch set into a cleaner implementation boundary
- reduce direct runtime patching
- harden the
stoppolicy so it more strongly suppresses proactive continuation
Final judgment
The Telegram + OpenClaw PoC should be considered successful.
It has crossed the threshold from design-only work into a real, user-visible, callback-capable interaction control path.