Добро пожаловать в блог Agent!: одно приложение, любой ИИ, полный контроль над вашим Mac
Что такое AgentiLoop Agent!, как он устроен и о чём будет этот ежедневный блог — прямо из исходного кода.
Это официальный блог AgentiLoop Agent! — нативного ИИ-агента для macOS. План простой: одна публикация в день, и пишем мы в основном о том, что знаем лучше всего, — о самой кодовой базе. Вас ждут подробные разборы того, как работает цикл агента, почему защитный механизм устроен именно так, что изменилось в последнем релиз-кандидате, а иногда и взгляд на более широкий мир ИИ-агентов.
Если вы здесь впервые, этот первый пост — ваша карта.
Что такое Agent!
Agent! — это на 100% нативное приложение на Swift / SwiftUI. Вы пишете (или говорите), что вам нужно, и оно выполняет работу на вашем Mac, а не просто объясняет, как её сделать:
- Он действительно пишет код. Он читает ваш проект, редактирует файлы с помощью диффов на основе замены строк, собирает проект в Xcode, читает ошибки, исправляет их и делает коммит через git.
- Он управляет любым приложением на Mac через Accessibility API, а также через AppleScript, JXA и 51 мост ScriptingBridge к приложениям.
- Он выполняет shell-команды от вашего имени или от root через Launch Agent и Launch Daemon, зарегистрированные с помощью SMAppService и доступные по XPC.
- Он работает с 23 провайдерами LLM, а также с Apple Intelligence прямо на устройстве: Claude, Codex, OpenAI, Gemini, Grok, Mistral, DeepSeek, Qwen, Z.ai, OpenRouter, Ollama, vLLM, LM Studio и другими.
- Он слушает. Скажите «Agent!» и назовите задачу — или напишите ему с iPhone через iMessage (только от одобренных отправителей).
В README это сформулировано одной строкой: Siri отвечает. Agent! действует.
Без NPM и без Electron
Больше всего людей удивляет то, чего в Agent! нет. Нет оболочки Electron, нет среды выполнения Node и нет node_modules. Все Swift-пакеты, от которых он зависит, написаны одним и тем же автором, и каждый живёт в собственном репозитории в организации AgentiLoop:
| Пакет | Задача |
|---|---|
| AgentTools | Схемы инструментов, системные промпты и управление провайдерами |
| AgentLLM | Протоколы, типы и реестр провайдеров LLM |
| AgentMCP | Клиент MCP (stdio и HTTP) |
| AgentAccess | Автоматизация через Accessibility |
| AgentEventBridges | Протоколы ScriptingBridge для 50+ приложений Mac |
| AgentD1F | Движок многострочных диффов |
| AgentSwift | Анализ кода с помощью SwiftSyntax |
| AgentColorSyntax · AgentTerminalNeo | Подсветка синтаксиса · Markdown в стиле ретро-терминала |
| AgentAudit | Аудит-логирование через os.log |
В результате получается приложение, которое потребляет очень мало оперативной памяти и сразу умеет автоматизировать Xcode, анализировать синтаксис Swift, работать с Accessibility, AppleScript, автоматизацией Safari и MCP.
Цикл в центре всего
Всё строится вокруг одной идеи — самопроверяющегося цикла выполнения задач. Модель рассуждает, вызывает инструмент, видит реальный результат и сама себя корректирует. Несколько правил делают этот цикл надёжным:
- Инструменты нельзя подделать. Каждый вызов проходит через единый диспетчер и возвращает реальный вывод. Если модель заявляет «Я нажал» без вызова инструмента, Agent! добавляет исправление.
- Для «готово» нужны доказательства. Задача не может объявить себя завершённой, пока её критерии
goal_stateне отмечены как выполненные с подтверждением — например, успешной сборкой или пройденным тестом. - Сначала прочитай, потом редактируй. Правки файла, который модель не читала или который изменился на диске после чтения (проверяется по SHA-256), отклоняются. При отказе файл автоматически читается для модели, чтобы следующая попытка опиралась на актуальные строки.
- Всё обратимо. Каждая правка сохраняется в снимке на неделю. Можно откатить один файл или отмотать назад целую задачу с помощью
rewind_task.
Каждое из этих правил мы подробно разберём в следующих постах.
AgentScript: Swift с полными правами
Одна из самых самобытных частей — AgentScript. Скрипты — это обычные файлы Swift. Agent! компилирует каждый из них в .dylib с помощью SwiftPM и загружает в свой процесс через dlopen, поэтому скрипт наследует собственные разрешения Agent! в macOS: Accessibility, Automation, Календарь, Контакты, Почту, Фото и так далее. Чтобы написать скрипт, достаточно одной точки входа:
import Foundation
import CalendarBridge // any `import XBridge` auto-wires, no Package.swift edits
@_cdecl("script_main")
public func scriptMain() -> Int32 {
print("Hello from AgentScript! 👋")
return 0
}
Всё, что скрипт выводит, возвращается модели, а возвращаемое значение служит кодом завершения. Вместе с приложением поставляется около 35 примеров, включая TodayEvents, NowPlaying, CheckMail и CreateDmg.
Безопасность, которую можно прочитать
Agent! может работать от root, поэтому безопасность здесь — не слайд в презентации. Это код, который можно открыть на GitHub. Жёстко зашитый ShellSafetyService отклоняет катастрофические команды ещё до их отправки, а привилегированный демон повторяет ту же проверку на своей стороне. Дополнительное «второе мнение» под названием Jev оценивает, насколько вероятно, что команда уничтожит данные. Как именно это работает, подробно рассказано в нашем первом глубоком разборе.
Семейство продолжает расти
Тот же цикл агента теперь работает и в терминале на macOS, Windows и Linux — в виде двух CLI с одинаковыми возможностями: AgentiLoopCLI на Rust и AgentiLoopGo на Go. Забавный факт из README: Agent! для Mac сам написал своих младших братьев.
Чего здесь ждать
- Внутреннее устройство: цикл агента, сжатие контекста, диспетчеризация инструментов, субагенты, память и планы.
- Безопасность: защитные механизмы, модель доверия XPC и уроки, которые недавние инциденты с агентами преподают разработчикам.
- Заметки о выпусках с объяснением причин: что изменилось в каждой сборке и какой баг к этому привёл.
- Практические руководства: рецепты AgentScript, выбор провайдера при ограниченном бюджете, полностью локальная работа.
- Большой мир агентов: новости и обзоры — всегда с объяснением, что это значит для вашего Mac.
Agent! работает на macOS 14.6 и новее, на Apple Silicon и Intel, и бесплатен для личного использования. Скачайте его ниже и возвращайтесь завтра.