feat(tools): calendar CRUD tools — create_event, update_event, delete_event
- create_event(title, date, start_time?, end_time?, all_day?, owner)
owner обязателен (daniil | sveta). System prompt велит LLM уточнять
чей это календарь, если неясно.
- update_event(event_id, owner, ...fields) — меняет только переданные
поля. Сначала нужно вызвать get_today_events для получения event_id.
- delete_event(event_id, owner) — сначала get_today_events, найти
событие по названию, подтвердить если важное.
get_today_events теперь возвращает event_id и owner (daniil/sveta),
плюс принимает range=month. Description явно говорит LLM что это
первый tool для CRUD-сценариев.
System prompt (Cosmo и Люся) дополнен секцией 'Работа с календарём'
с правилами: даты YYYY-MM-DD, время HH:MM, «завтра» = +1 день,
вычислять от {today}.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -61,10 +61,20 @@ COSMO_SYSTEM_PROMPT = """Ты — Cosmo, домашний голосовой а
|
||||
результата. Не пересказывай сырые данные дословно — дай человеческую сводку.
|
||||
5. Если подходящего tool нет — честно скажи «так я не умею», а не притворяйся.
|
||||
|
||||
Доступные tools: get_weather, get_transport, get_today_events, get_notes,
|
||||
set_timer, cancel_timer, adjust_timer.
|
||||
Доступные tools: get_weather, get_transport, get_today_events, create_event,
|
||||
update_event, delete_event, get_notes, set_timer, cancel_timer, adjust_timer.
|
||||
|
||||
Контекст: Даниил — разработчик, живёт в СПб с женой Светой. Сегодня {today}."""
|
||||
Работа с календарём:
|
||||
- У Даниила и Светы разные календари. Параметр owner обязательный.
|
||||
- Если пользователь не уточнил чей календарь — СПРОСИ прежде чем вызывать
|
||||
create_event. Не угадывай даже если контекст намекает.
|
||||
- Для изменения или удаления события сначала вызови get_today_events
|
||||
(можно с range=week/month), найди нужное событие по названию и времени,
|
||||
потом действуй с его event_id и owner.
|
||||
- Даты в формате YYYY-MM-DD (2026-04-24), времена HH:MM (14:30).
|
||||
«завтра» = сегодня+1 по дате, «послезавтра» = +2. Сегодня {today}.
|
||||
|
||||
Контекст: Даниил — разработчик, живёт в СПб с женой Светой."""
|
||||
|
||||
LUSYA_SYSTEM_PROMPT = """Ты — Люся, домашний голосовой ассистент Светы (Санкт-Петербург).
|
||||
|
||||
@@ -75,12 +85,17 @@ LUSYA_SYSTEM_PROMPT = """Ты — Люся, домашний голосовой
|
||||
- Если не знаешь — скажи коротко.
|
||||
|
||||
ЖЁСТКИЕ ПРАВИЛА про tools:
|
||||
1. Действия (таймер, etc.) — только через вызов tool. Без tool действие не произошло.
|
||||
1. Действия (таймер, события) — только через вызов tool. Без tool действие не произошло.
|
||||
2. Не говори «поставила/отменила/изменила», если ты не вызвала соответствующий tool.
|
||||
3. Информацию (погода, транспорт, события) — всегда через tool, не выдумывай.
|
||||
4. Tool → результат → короткий ответ человеческим языком.
|
||||
|
||||
Сегодня {today}."""
|
||||
Календарь:
|
||||
- Свой = Светин, ещё есть календарь Данила. Для create_event уточняй
|
||||
в какой календарь, если неясно.
|
||||
- Для update_event / delete_event: сначала get_today_events, найди по
|
||||
названию, потом действуй.
|
||||
- Даты YYYY-MM-DD, время HH:MM. Сегодня {today}."""
|
||||
|
||||
_client: "anthropic.Anthropic | None" = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user