Ваш пристрій, ваші дані, ваш агент
Персональний AI-асистент, що працює на 100% на пристрої. Без хмари. Без Python. Ваші дані не залишають машину.
Проблема
Siri надсилає ваш голос Apple. Google Assistant надсилає ваші запити Google. Alexa надсилає все Amazon. Кожен "розумний" асистент вимагає стрибка в хмару. Ваш календар, контакти, повідомлення та дані про місцезнаходження залишають пристрій.
Що якби ви могли мати потужного асистента, який ніколи не надсилає жодного байта за межі вашої машини?
Конфіг
device_agent.toml описує повноцінного on-device асистента з локальним LLM inference і доступом до всіх ваших даних Apple через iMCP - і все це у 82 рядках TOML.
Локальний LLM inference
[agent] provider = "llama_cpp" model = "unsloth/Qwen3-VL-8B-Instruct-GGUF:UD-Q6_K_XL" assume_mutating = false tools = [ "create_task", "todowrite", "todoread", "question", "mdq", # Усі інструменти даних Apple приходять з iMCP "iMCP.*", ]
"iMCP.*" - це wildcard, який збігається з кожним інструментом, що його експортує iMCP MCP server. Коли в iMCP з'являються нові сервіси (Reminders, Notes, Shortcuts), агент автоматично отримує до них доступ без змін у конфігу.
Параметри GPU-моделі
[agent.parameters] n_ctx = 160000 # Контекстне вікно 160K max_tokens = 8192 # Макс. довжина відповіді top_p = 0.95 top_k = 20 temperature = 0.9 # Креативно, але приземлено flash_attention = "enabled" # Швидший inference
QueryMT автоматично визначає ваш GPU (Metal на Apple Silicon, CUDA на NVIDIA, Vulkan в інших випадках) і завантажує правильний OCI-варіант образу. Без налаштування драйверів. Без встановлення CUDA toolkit.
Тришарове ущільнення для довгих розмов
# Шар 1: обрізання виводу інструментів [agent.execution.tool_output] max_lines = 2000 max_bytes = 51200 # Шар 2: pruning після кожного ходу [agent.execution.pruning] protect_tokens = 40000 # Шар 3: AI summary при переповненні контексту [agent.execution.compaction] auto = true
Запити до календаря й пошук по контактах повертають структуровані дані. Але довгі розмови з великою кількістю викликів інструментів все одно можуть заповнити вікно у 160K. Тришарова система ущільнення обробляє це автоматично: обрізає великі виводи інструментів, відкидає старі повідомлення та підсумовує, коли це потрібно.
MCP server: iMCP
# iMCP - локальний доступ до даних Apple [[mcp]] name = "iMCP" transport = "stdio" command = "/Applications/iMCP.app/Contents/MacOS/imcp-server"
Це каже QueryMT локально запускати iMCP MCP server. Агент спілкується з ним через stdio - без жодного мережевого з'єднання. iMCP напряму мостить до нативних API Apple.
Архітектура
Усе залишається на пристрої. Дані не залишають вашу машину на жодному етапі пайплайну:
LLM працює локально через llama.cpp. Виклики інструментів ідуть до iMCP через stdio. iMCP викликає локальні API Apple. Ваші дані в жодний момент не проходять через мережеве з'єднання. Агент працює офлайн.
Приклад взаємодії
Ключові можливості
- 100% on-device — локальний LLM inference, локальний доступ до даних, без хмари
- Інтеграція з iMCP — Calendar, Contacts, Messages, Maps, Weather через нативні API
- Wildcard-патерни інструментів —
"iMCP.*"автоматично підхоплює нові сервіси - Автовизначення GPU — Metal/CUDA/Vulkan, без ручного конфігу
- Працює офлайн —
stdioтранспорт, мережа не потрібна - Тришарове ущільнення — витримує довгі розмови з великою кількістю інструментів
Спробуйте самі
# 1. Встановіть iMCP brew install --cask mattt/tap/iMCP # Або завантажте з https://iMCP.app/download # 2. Відкрийте iMCP.app і ввімкніть сервіси (Calendar, Contacts тощо) # 3. Запустіть агента cargo run --example qmtcode --features dashboard -- confs/device_agent.toml --dashboard # 4. Ставте запитання в dashboard: # "What does my schedule look like today?" # "Do I have any messages from Sarah this week?" # "What's the weather like for my commute home?"