Перейти к содержанию

Обзор архитектуры

SILO построен как модульный уровень исполнения для ИИ-агентов. Он создает доверенную экосистему инструментов, где фреймворк управляет жизненным циклом скиллов, гарантируя их безопасность, изоляцию и удобство обнаружения.

Основные компоненты

1. Хаб (Реестр скиллов)

Хаб — это локальная база данных и файловое хранилище (расположенное в ~/.silo/), которое отслеживает все установленные скиллы.

  • Хранит метаданные об именах инструментов, описаниях и требуемых аргументах.
  • Ведет кэш LRU (Least Recently Used) для эффективной очистки при дефрагментации/удалении.

2. Раннер (Движок исполнения)

Раннер отвечает за непосредственное исполнение инструментов.

  • Локальные виртуальные окружения: Каждый скилл в хабе поддерживает свою собственную директорию .venv. Это обеспечивает полную изоляцию зависимостей и позволяет uv использовать жесткие ссылки (hard-links) для экономии дискового пространства, предоставляя при этом переносимую среду для каждого скилла.
  • Изоляция процессов: Он запускает изолированные Python-процессы, используя специфичный для скилла интерпретатор. Это позволяет избежать проверок глобального кэша uv run при каждом вызове, что значительно увеличивает скорость исполнения.
  • IPC (Межпроцессное взаимодействие): Общается с дочерним процессом через каналы (pipes), безопасно внедряя секреты и получая ответы.
  • Обработка результатов: Парсит стандартизированные ответы (AgentResponse) и обрабатывает ошибки или запросы на подтверждение.

3. Поисковой движок (Обнаружение)

Когда агент не знает, какой инструмент использовать, поисковой движок обеспечивает семантическое сопоставление.

  • Алгоритм BM25: Высокопроизводительное ранжирование текста на основе описаний инструментов.
  • Динамическая маршрутизация: Позволяет агентам искать «что» они хотят сделать, а не «как».

4. Интерактивный слой (HITL)

Специализированный модуль, который обрабатывает подтверждения действий человеком и сбор секретов.

  • Браузерный: Запускает локальный HTML-интерфейс для премиального пользовательского опыта.
  • Терминальный: Резервный вариант для SSH и удаленных сред.

Поток исполнения

  1. Обнаружение: Агент запрашивает silo_search.
  2. Выбор: Агент выбирает инструмент на основе возвращенной схемы.
  3. Запуск: Агент вызывает silo_execute.
  4. Валидация: Раннер проверяет наличие необходимых секретов и подтверждений пользователя.
  5. Исполнение: Процесс в песочнице выполняет логику и возвращает структурированный ответ.
  6. Сохранение: Хаб обновляет историю использования.