Claude Haiku 4.5 теперь умеет дёргать tools. Все tools — proxy к endpoints
планшета (/api/voice/tools/* и /api/voice/timer) с bearer auth
VOICE_API_KEY. Никакой дополнительной auth в скрипте не требуется.
- satellite/tools.py — 5 tools:
* get_weather(city?) → Open-Meteo через tablet
* get_transport(direction, routes?) → трамваи Антонова-Овсеенко
* get_today_events(range?) → Google Calendar (today/week)
* get_notes() → текстовые + shopping lists
* set_timer(seconds, label) → создаёт таймер на дашборде
Каждый tool возвращает dict/list; ошибки упаковываются как {error: ...}
и отдаются Claude как результат — он сам обрабатывает.
- satellite/llm_claude.py:
* Подключил TOOL_SCHEMAS в вызов messages.create
* Цикл tool-use: до MAX_TOOL_ROUNDS=4 раундов tool_use → exec → tool_result
* System prompt дополнен инструкцией «используй tools без спроса»
* Финальный текст (после всех tool rounds) сохраняется в историю как один
assistant-turn — tool rounds в history не пишутся чтобы не раздувать кеш
* Usage логируется суммарно за все раунды
Работает с уже поднятым tinyproxy на .103 (HTTPS_PROXY в .env).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a parallel LLM backend that bypasses OpenClaw and talks to
Anthropic Messages API directly. Selected via LLM_BACKEND=claude in
.env; default remains openclaw so nothing breaks for existing setup.
Why: OpenClaw gateway adds 500-1000ms overhead on every turn (auth,
memory fetch, routing). Direct Haiku 4.5 + prompt caching = faster
first token and -90% cost on cached chunks.
- satellite/llm_claude.py — Anthropic SDK streaming client, prompt
caching on system prompt and all-but-last-2 history messages, per
agent+date JSON history in HISTORY_DIR, reset_history() for the
'сбрось' command, per-agent system prompts (Cosmo / Люся), fallback
to error event if SDK/key missing.
- satellite/llm.py — dispatches to ask_claude_stream when backend=claude,
exports LLM_BACKEND so modes.py can route reset too.
- satellite/modes.py — _handle_reset calls reset_history when backend
is claude, keeps /new POST for openclaw.
- requirements.txt — anthropic >= 0.50.0
- .env.example — LLM_BACKEND, ANTHROPIC_API_KEY, ANTHROPIC_MODEL,
HISTORY_DIR, MAX_HISTORY, HTTPS_PROXY block for non-RU egress.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>