micro-models-agent
MMA — Micro Models Agent
LLM-агент, который работает на маленьких моделях (Qwen3.5-9B, 32K-64K контекст). Пишет код, редактирует файлы, ищет баги, выполняет bash-команды, читает документацию — и всё это на моделях, которые запускаются на обычном ноутбуке без GPU.
Чем MMA отличается от больших агентов (OpenCode, Claude Code, Cursor):
- Лёгкий: не требует GPT-4 или Claude Sonnet. Работает на Qwen3.5-9B, DeepSeek-Coder и других opensource-моделях. Всё локально.
- ReAct-цикл: модель сама планирует и вызывает инструменты через
<tool_call>— читает/пишет/редактирует файлы, ищет по проекту, выполняет bash. - Навыки (Skills): подгружаемые markdown-инструкции для специализированных задач (Docker, CSS, auth, и т.д.).
- Индексация кода: AST-индекс символов + карта проекта (project map) для навигации по любой кодовой базе.
- Память: долговременная память агента — запоминает факты между сессиями.
- Веб-поиск: может искать информацию в интернете.
- Планирование: создаёт и утверждает планы через PLAN.md перед выполнением.
- Сессии: сохранение, восстановление, список сессий.
- MCP интеграция: поддержка Model Context Protocol для внешних инструментов.
- Вопросы пользователю: может уточнять детали задачи, запрашивать одобрение.
- Синтаксис @file: загрузка файлов/директорий прямо в промпт.
- Стилизация: сменные темы оформления.
- Мастер первого запуска: интерактивная настройка провайдера и модели.
- 12 файловых инструментов: read, write, edit, list, create, delete, copy, move, info, glob, grep, tree.
- Простая установка:
npm install -g micro-models-agentи готово.
Поддерживает OpenAI-совместимые API: LM Studio, Ollama, vLLM, Together AI и другие.
Установка
Глобально через npm (рекомендуется)
npm install -g micro-models-agent
# Проверка:
mma --version
Из исходников
git clone <repo>
cd mma
npm install
npm run build
npm link
Удаление
npm uninstall -g micro-models-agent # удалить пакет
rm -rf ~/.mma # удалить конфиг, кэш, логи, сессии
~/.mma/можно не удалять — данные останутся на случай повторной установки.
Быстрый старт
Интерактивный режим (REPL) — самый простой способ
# Установите
npm install -g micro-models-agent
# И просто запустите
mma
Совет: перед первым запуском запустите LM Studio → вкладка Local Server → Start Server → загрузите модель (например, Qwen 3.5-9B). Мастер сам найдёт её и настроит.
При первом запуске появится мастер настройки:
- Выберите провайдера (LM Studio, Ollama или Remote API)
- Мастер найдёт доступные модели и протестирует соединение
- Готово — вы в REPL, можно писать запросы
При повторных запусках REPL открывается сразу.
В REPL работаете как в чате: пишете задачу, агент думает и выполняет. Доступны служебные команды:
| Команда | Описание |
|---|---|
/help |
Справка |
/read <file> |
Показать файл |
/write <file> |
Записать файл |
/bash <cmd> |
Выполнить команду |
/clear |
Очистить контекст |
/exit |
Выход |
One-shot (быстрый запрос)
mma "Создай React-компонент для формы входа"
Можно передать провайдера и модель флагами:
mma --provider ollama --model qwen3.5-9b "Напиши Dockerfile"
С пайпом (stdin)
cat package.json | mma "Опиши зависимости"
Настройка провайдеров и моделей
По умолчанию конфиг настроен на LM Studio (localhost:1234). Если нужно добавить другой сервер:
# Добавить провайдера
mma provider add ollama http://localhost:11434/v1
# Переключиться на него
mma provider use ollama
# Добавить модель к активному провайдеру
mma model add qwen3.5-9b qwen3.5-9b-instruct 32768
# Выбрать модель (model add не активирует автоматически)
mma model use qwen3.5-9b
Все команды управления
# Провайдеры
mma provider list # Список провайдеров
mma provider use ollama # Переключиться на провайдера
mma provider add <имя> <url> # Добавить провайдера
mma provider remove <имя> # Удалить провайдера
# Модели
mma model list # Список моделей активного провайдера
mma model use <имя> # Переключиться на модель
mma model current # Показать активную модель
mma model add <имя> <id> <ctx> # Добавить модель
mma model remove <имя> # Удалить модель
mma model params [имя] # Параметры модели
mma model set <имя> k=v # Изменить параметр (temperature=0.5)
# Конфиг
mma config show # Показать весь конфиг
mma config reset # Сбросить настройки
mma config thinking [on/off] # Включить/выключить скрытие размышлений модели
# Обновления
mma update # Проверить наличие обновлений
mma update check # Проверить версию
mma update install # Скачать и установить обновление
Параметры моделей
По умолчанию:
temperature: 0.7max_tokens: 4096top_p: 0.9
Изменить:
mma model set qwen3.5-9b temperature=0.3 max_tokens=8192
mma model set qwen3.5-9b seed=42 # для воспроизводимости
mma model set qwen3.5-9b seed=null # сбросить seed
Конфигурация
Конфиг хранится в ~/.mma/config.json.
{
"providers": {
"lmstudio": {
"type": "openai-compat",
"url": "http://localhost:1234/v1",
"apiKey": null,
"models": {
"qwen3.5-9b": {
"model": "qwen3.5-9b-instruct",
"contextWindow": 32768,
"params": {
"temperature": 0.7,
"max_tokens": 4096
}
}
}
}
},
"active": {
"provider": "lmstudio",
"model": "qwen3.5-9b"
},
"agent": {
"maxSteps": 50,
"autoCompact": true,
"compactThreshold": 0.85,
"toolTimeout": 120,
"maxOutputLength": 2000
}
}
Можно также создать .mmrc в корне проекта — он смержится поверх глобального конфига.
Переменные окружения
| Переменная | Описание |
|---|---|
MMA_PROVIDER |
Провайдер по умолчанию |
MMA_MODEL |
Модель по умолчанию |
MMA_STDIN=1 |
Принудительное чтение stdin |
Режимы запуска
One-shot
mma "Объясни этот код: function fib(n) { return n < 2 ? n : fib(n-1) + fib(n-2); }"
Stdin (пайп)
cat main.ts | mma "Найди потенциальные баги"
curl -s https://api.example.com/data | mma "Проанализируй JSON"
REPL
mma
В REPL доступны команды:
| Команда | Описание |
|---|---|
/read <file> |
Показать файл с нумерацией строк |
/write <file> |
Записать файл (до EOF) |
/edit <file> <n> |
Заменить строку N в файле |
/find <pattern> |
Поиск файлов по glob |
/search <pattern> |
Поиск содержимого |
/bash <cmd> |
Выполнить shell-команду |
/git <args> |
Git-операции |
/memory |
Показать память |
/memory add <type> <text> |
Добавить в память |
/memory search <query> |
Поиск в памяти |
/skill |
Список навыков |
/sessions |
Список сессий |
/resume <id> |
Восстановить сессию |
/save [name] |
Сохранить сессию |
/clear |
Очистить контекст |
/help |
Справка |
/exit |
Выход |
Синтаксис @file
Загружает файлы в контекст агента:
mma "@src/index.ts -- объясни эту функцию"
# Несколько файлов
mma "@src/auth/login.ts @src/auth/jwt.ts -- сравни"
# Диапазон строк
mma "@src/index.ts:10-30 -- что здесь происходит?"
# Вся директория
mma "@src/auth/ -- покажи структуру модуля"
Навыки (Skills)
Навыки — это Markdown-файлы с инструкциями для модели. Загружаются из:
~/.mma/skills/<name>/SKILL.md.agents/skills/<name>/SKILL.md.claude/skills/<name>/SKILL.md
# Использовать навык
mma "@docker -- помоги контейнеризовать приложение"
Агент: как это работает
- Вы даёте задачу (prompt)
- Модель генерирует план и вызывает инструменты через
<tool_call> - Агент выполняет инструменты и возвращает результат модели
- Модель анализирует результат и решает, что делать дальше
- Цикл продолжается до завершения задачи (макс. 50 шагов)
Инструменты агента
| Инструмент | Описание |
|---|---|
read_file |
Чтение файла с нумерацией строк |
write_file |
Атомарная запись/создание файла |
edit_file |
Find & replace (точное совпадение) |
list_dir |
Список директории |
create_dir |
Рекурсивное создание директории |
delete_file |
Удаление файла/директории |
copy_file |
Копирование |
move_file |
Перемещение/переименование |
file_info |
Метаданные файла |
glob_search |
Поиск по паттерну |
grep_search |
Поиск по содержимому (regex) |
tree |
Дерево директорий |
bash |
Выполнение команд (npm, git, docker) |
Индексация проекта
Агент автоматически строит карту проекта и индекс кода:
# Вручную перестроить
/build index rebuild
/build project-map
Работа с сессиями
# Автосохранение при выходе
/save my-session-name
# Список сессий
/sessions
# Восстановить
/resume my-session-name
Разработка
npm run build # Компиляция TypeScript
npm run dev # Watch-режим
npm test # Тесты
npm run test:all # Все тесты
npm run test:watch # vitest watch
Публикация новой версии
npm version patch # или minor, major
npm publish
Лицензия
MIT