[2026-06-18] eagle: personal/agent/commands/reset-stop.md personal/projects/zulip-router-approval-reactions.md
This commit is contained in:
@@ -1,24 +1,30 @@
|
||||
# /reset и /stop — Слеш-команды НЕ обрабатываются Hermes
|
||||
# /reset и /stop — Слеш-команды в gateway
|
||||
|
||||
Слеш-команды (`/reset`, `/stop` и любые другие `/...`) передаются агенту как обычный текст промпта.
|
||||
Hermes **не перехватывает** их на уровне платформы или роутера — они идут прямо в контекст агента.
|
||||
## /stop
|
||||
|
||||
Это значит:
|
||||
- Агент **видит** `/reset` или `/stop` как часть сообщения
|
||||
- Агент **обязан сам** решить, что с этим делать
|
||||
- Hermes не сбрасывает контекст, не стопает инференс, не очищает историю при `/reset`
|
||||
**Обрабатывается gateway'ом** на уровне `_message_handler` (строка 7719 run.py):
|
||||
|
||||
## Что это значит на практике
|
||||
1. `_message_handler` перехватывает /stop **ДО** роутинга в `_route_to_active_session`
|
||||
2. Вызывает `_interrupt_and_clear_session()` — принудительное прерывание + чистка сессии
|
||||
3. Interrupt в `_route_to_active_session` (строки 3500-3504) тоже срабатывает, но это не ломает — /stop должен прерывать агента
|
||||
|
||||
| Команда | Реальность |
|
||||
|---------|------------|
|
||||
| `/reset` | Не сбрасывает контекст — агент видит это как текст и должен сам остановиться / начать заново |
|
||||
| `/stop` | Не останавливает агента — агент видит это как текст и должен сам прекратить действия |
|
||||
| Любая `/команда` | Идёт агенту в промпт как обычное сообщение |
|
||||
## /reset
|
||||
|
||||
## Почему так
|
||||
**Не обрабатывается gateway'ом как отдельная команда.** Идёт агенту как текст промпта.
|
||||
|
||||
Hermes — агентный фреймворк, а не чат-платформа. У него нет встроенного парсера слеш-команд. Вся логика — на агенте.
|
||||
В коде есть `/new` (строка 7736), который делает interrupt + reset. /reset же агент видит как обычный текст.
|
||||
|
||||
**Способ:** писать `@**Кит** /new` (синтаксис gateway) а не `/reset`. Либо положиться на то, что агент сам увидит `/reset` в тексте и остановится.
|
||||
|
||||
## /approve и /deny
|
||||
|
||||
Обрабатываются отдельно — см. `personal/projects/zulip-router-approval-reactions.md`.
|
||||
|
||||
## Системные оповещения о действиях агента не приходят
|
||||
|
||||
Hermes **не отправляет пользователю нотификации** о действиях агента. Когда агент пишет/читает/изменяет файлы, запускает команды, вызывает инструменты (MCP, skills, terminal, и т.д.) — пользователь об этом **не узнаёт**, если агент сам не напишет об этом в чат.
|
||||
|
||||
**Способ узнать:** только дождаться ответа агента в чат или спросить «что сделано».
|
||||
|
||||
## Системные оповещения о действиях агента не приходят
|
||||
|
||||
|
||||
@@ -243,6 +243,9 @@ Hermes **не отправляет пользователю нотификаци
|
||||
- [x] Добавить guard в `_route_to_active_session()` — если команда approve/deny, не прерывать агента и approval
|
||||
- [x] Тесты: 21 passed (2.35s)
|
||||
- [x] Закоммичено: `eae71aab8` — `gateway/run.py` (8 строк добавил)
|
||||
- [x] Доки обновлены: `reset-stop.md` (правда о /stop и /reset), `zulip-router-approval-reactions.md` (прогресс)
|
||||
|
||||
### Phase 2: Реакции через роутер (следующий шаг)
|
||||
|
||||
### Phase 2: Реакции через роутер
|
||||
- [ ] Добавить `"reaction"` в event_types роутера
|
||||
|
||||
Reference in New Issue
Block a user