← Все статьи

Добро пожаловать в блог 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, и бесплатен для личного использования. Скачайте его ниже и возвращайтесь завтра.