Агент: медиа-тулсет (search/info/play) на Jellyfin + скилл media
- MEDIA_TOOLSET + MediaToolExecutor: search (поиск с лимитом), info (детали), play (проверки+запуск) - JellyfinMediaSource: обёртка JellyfinClient (search/item) с защитой userId - agentPlayMedia: проверки (очки на связи, видео скачано на очки, звук на телефоне) → watch с позицией - PhoneActions.watch(startPositionMs), JellyfinItem.ProductionYear - скилл app-phone/skills/media.md (frontmatter: name/description) - MediaToolsTest: 22 кейса — всего 142 теста зелёные
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: media
|
||||
description: поиск фильмов и сериалов, детали, запуск и управление просмотром на очках.
|
||||
---
|
||||
Скилл: медиа (Jellyfin-каталог, просмотр на очках).
|
||||
|
||||
Шаги:
|
||||
1. Для работы с медиа сначала активируй набор: TOOL_CALL: enable_toolset|media
|
||||
— дождись ответа: в нём реестр тул (media_search, media_info, media_play) и пометка,
|
||||
что сам поиск ещё НЕ выполнялся.
|
||||
2. Поиск: TOOL_CALL: media_search|<название> [limit=<кол-во, по умолчанию 5>]
|
||||
— результат: строки «id: Название (Год) — Тип». Покажи пользователю найденное
|
||||
и спроси, что включить (или включи прямо, если выбор ясный).
|
||||
3. Детали: TOOL_CALL: media_info|<id> — название, тип, год, описание, длительность, постер.
|
||||
4. Запуск: TOOL_CALL: media_play|<id> [seek_ms=<позиция в мс>]
|
||||
— видео должно быть скачано на очки, звук — на телефон (это проверка исполнителя,
|
||||
а не твоя: если не готово — в ответе будет точная причина и команда заказа).
|
||||
|
||||
Питфоллы:
|
||||
- media_* вызывается ТОЛЬКО когда тулсет активен: если набор не активен, сначала
|
||||
enable_toolset|media — иначе система подменит вызов на активацию и скажет,
|
||||
что поиск ещё не выполнялся.
|
||||
- enable_toolset|media повторять не нужно: повторный вызов — продление таймаута,
|
||||
не ошибка. Таймаут активности 10 минут с последнего вызова.
|
||||
- Если media_play вернул «видео не скачано / звук не готов / очки не подключены»
|
||||
— сообщи пользователю как есть (это фактическое состояние, не сбой нейросети)
|
||||
и предложи дождаться или скачать вручную.
|
||||
- Ответы тул фактические: не додумывай фильмов, которых нет в результате media_search.
|
||||
Reference in New Issue
Block a user