nanobot — сверхлёгкий self-hosted AI-агент на Python
📂 Исходный код на GitHubОткрытый ультралёгкий фреймворк личного AI-агента на Python. Работает в WebUI, терминале и чат-приложениях: инструменты, долговременная память Dream, MCP-серверы, под-агенты, автоматизации по расписанию, OpenAI-совместимый API и развёртывание на своём сервере.
nanobot — сверхлёгкий self-hosted AI-агент на Python
nanobot — открытый фреймворк личного AI-агента от команды HKUDS. Он написан на Python и распространяется под лицензией MIT. Авторы называют проект ультралёгким: инструменты, долговременная память, MCP-интеграции, маршрутизация моделей, под-агенты и автоматизации по расписанию уместились в небольшое читаемое ядро. При этом агент доступен откуда угодно: в браузере, в терминале и в привычных чат-приложениях — Telegram, Discord, Slack, WeChat, Feishu, почте и других.
Что умеет nanobot
nanobot позиционируется как runtime для личного AI-агента, который вы хостите сами. Список возможностей из README:
- работает в браузерном WebUI или в терминале;
- подключается к Telegram, Discord, Slack, WeChat, Email, Mattermost, Linear и другим каналам;
- вызывает инструменты: файлы, shell, веб-поиск, загрузку страниц, MCP, cron, генерацию изображений и под-агентов;
- хранит историю сессий и долговременную память через механизм Dream;
- ведёт долгие цели и запускает автоматизации по расписанию;
- предоставляет Python SDK и OpenAI-совместимый API для интеграций;
- разворачивается как долго живущий локальный или серверный агент-шлюз.
Зачем он нужен
Авторы формулируют пять причин пользоваться именно nanobot:
- Постоянство рабочих процессов — цели, память, инструменты и контекст чата не теряются между запусками и выдерживают долгую работу.
- Чат-нативность — WebUI, API, Telegram, Feishu, Slack, Discord, Teams, почта, Mattermost и Linear.
- Свобода выбора моделей — любые OpenAI-совместимые API, локальные LLM, генерация изображений, поиск и запасные модели на случай сбоя.
- Малое ядро — читаемая внутренняя архитектура, в которую MCP, память, развёртывание и автоматизации встроены с самого начала.
- Свой стек — код можно изучать, настраивать, хостить у себя и расширять без привязки к большой платформе.
Установка
Требуется Python 3.11 или новее. Git и Bun нужны только при установке из исходников. Самый простой путь — установочный скрипт одним командом.
macOS и Linux:
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh
Windows PowerShell:
irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1 | iex
Скрипт ставит пакет nanobot-ai из PyPI и сразу запускает nanobot webui, чтобы настроить первого провайдера. Системный pip он не трогает: используется виртуальное окружение, uv, pipx или управляемый venv в ~/.nanobot/venv. С флагом --dry-run можно просто посмотреть план, ничего не меняя.
Классические способы тоже работают:
uv tool install nanobot-ai
python -m pip install nanobot-ai
Для самых свежих функций проект советует установку из исходников в editable-режиме:
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
Проверить установку можно так:
nanobot --version
Если консоль, API-ключи и конфиги для вас в новинку, у проекта есть отдельное руководство Start Without Technical Background с пошаговым диалоговым сценарием установки.
Первый запуск
Рекомендуемый первый шаг — браузерный интерфейс:
nanobot webui
Команда создаёт конфиг и рабочее пространство, поднимает локальный шлюз и открывает страницу http://127.0.0.1:8765. На свежей установке модель ещё не выбрана, поэтому настройка продолжается прямо в браузере. Дальше три шага:
- В Settings → Models выбрать провайдера, ключ и модель.
- Создать новый топик и отправить
Hello!— любой обычный ответ значит, что всё настроено верно. - Перед рабочими задачами выбрать рабочее пространство и режим доступа в композере.
Чтобы агент продолжал работать после закрытия терминала, есть фоновый режим шлюза:
nanobot gateway --background
Это единственная команда, которая переводит общий шлюз в постоянный фоновый режим. Каналы и автоматизации остаются живыми, когда все локальные клиенты закрыты. Управление привычное:
nanobot gateway status
nanobot gateway logs
nanobot gateway restart
nanobot gateway stop
Для быстрых проверок и скриптов есть одноразовый режим:
nanobot -m "Hello!"
Интерфейсы: терминал и браузер
Обычный запуск nanobot открывает нативный терминальный клиент. Он использует каталог запуска как рабочее пространство и делит сохранённые разговоры и локальный шлюз с WebUI. Внутри есть свои приёмы:
/— список команд,/sessions— переключение разговоров,@— упоминание приложения, MCP-сервера или сохранённой сессии;Ctrl+V— вставка картинки из буфера обмена;/diff— просмотр изменений файлов,/context— осмотр контекста сессии,/branch— продолжение из готового ответа в новой сессии;/detach— выйти, оставив задачу работать на шлюзе.
Полный справочник по CLI — в документации.
WebUI поставляется прямо в пакете с PyPI, без отдельной сборки фронтенда. Это полноценная рабочая среда:
- отдельные топики под разные задачи и проекты, плюс временные чаты, которые не сохраняются в историю и память;
- до четырёх разговоров рядом в виде колонок, строк или сетки; через меню
@агент может читать контекст соседней сессии и координировать работу; - раскрытие активности агента: рассуждения, вызовы инструментов, правки файлов с inline-диффами, вывод команд;
- индикатор контекста: размер, токены по раундам и повторное использование кеша;
- Apps для подключения MCP-серверов, каталог Skills с переиспользуемыми инструкциями и раздел Automations с календарём запусков.
Архитектура
Идея проекта проста. Всё держится на маленьком агентном цикле: сообщения приходят из чат-приложений, LLM решает, когда нужны инструменты, а память и навыки подгружаются только как контекст. Никакого тяжёлого слоя оркестрации поверх — поэтому основной путь легко читать и расширять, а каналы, инструменты, память и варианты развёртывания добавляются, не превращая систему в монолит. Подробнее об этом — в руководстве по архитектуре.
Интеграции и API
nanobot рассчитан не только на диалог с человеком. Python SDK и OpenAI-совместимый API позволяют встроить агента в локальные инструменты и скрипты: Python SDK — для программного управления, а одноразовый режим nanobot -m — для shell-автоматизации. Провайдеров, веб-поиск, MCP и настройки безопасности собирает конфигурация.
Развёртывание
Помимо локальной работы есть облачный вариант: кнопка Deploy to Render поднимает шлюз и WebUI из готового Blueprint репозитория — потребуется ключ ANTHROPIC_API_KEY и приватный токен NANOBOT_WEB_TOKEN, а Render выделит постоянный диск для сессий, памяти и истории. Для своей инфраструктуры руководство по развёртыванию описывает Docker, Docker Compose, Linux-сервисы и LaunchAgent на macOS. Единственное условие для автоматизаций: шлюз должен работать постоянно.
Кому подойдёт
nanobot — выбор для тех, кому нужен персональный агент «на всё», а не отдельный coding-ассистент. Он уместен, если вы хотите общаться с агентом из Telegram или Slack, держать память между сессиями, назначать задачи по расписанию и при этом полностью контролировать стек: свой сервер, свои модели, читаемый код на Python. Актуальная документация стабильных релизов живёт на nanobot.wiki, свежая версия для разработчиков — в документации репозитория, а последняя на момент публикации версия — v0.3.5.
Источник: https://github.com/HKUDS/nanobot