Firecrawl — AI-powered веб-краулер, который превращает любой сайт в чистые данные для языковых моделей. Как работает, чем отличается от обычного парсинга и для кого полезен.
Ollama — рантайм для запуска языковых моделей локально или через облако. Ставится одной командой на macOS, Windows и Linux, поднимает HTTP API на localhost:11434, умеет качать модели из реестра и подключаться к кодинг-агентам вроде Codex CLI.
ollama, который держит у себя пул моделей, отдаёт их по HTTP и по OpenAI-совместимому API, поддерживает tool calling, streaming, vision и embeddings. Тяжёлые модели можно гонять через Ollama Cloud, оставаясь на том же CLI.Что такое Ollama
Ollama — это «менеджер моделей» уровня Docker, только для LLM. Вы пишете ollama run gemma3, и движок скачивает веса, поднимает рантайм, открывает интерактивный чат в терминале. Параллельно работает HTTP API, к которому подключаются ваши скрипты, IDE и агенты.
Главная идея — единая точка входа для трёх режимов: локальные модели на вашей машине, облачные модели на серверах Ollama и удалённый доступ к ollama.com через тот же API. Вы один раз настраиваете клиент и переключаетесь между режимами сменой имени модели (gpt-oss:120b против gpt-oss:120b-cloud).
Основные возможности
| Возможность | Что даёт |
| Локальный рантайм | Запуск моделей на CPU/GPU без внешних API. macOS, Windows, Linux, Docker |
| Ollama Cloud | Тяжёлые модели (gpt-oss:120b, DeepSeek, Qwen3) через облако с тем же CLI |
| HTTP API | Локально http://localhost:11434/api, в облаке https://ollama.com/api |
| OpenAI-совместимость | Существующий код на OpenAI SDK работает с Ollama сменой base_url |
| Anthropic-совместимость | Отдельный слой для клиентов, которые ждут Anthropic-формат |
| Tool calling | Function calling с одиночными, параллельными и multi-turn вызовами |
| Streaming | Потоковая отдача thinking, content и tool_calls |
| Vision | Мультимодальные модели вроде Gemma 3 принимают картинки прямо в чат |
| Embeddings | Генерация векторов через embeddinggemma, nomic-embed-text и другие |
| Modelfile | Свои сборки с системным промптом, параметрами и базовой моделью |
| Интерактивное меню | ollama без аргументов открывает меню запуска моделей и интеграций |
| Launch для интеграций | ollama launch <tool> поднимает Codex, Claude Code, OpenCode, VS Code, Droid |
Установка и быстрый старт
Скачайте установщик с ollama.com/download или поставьте через пакетный менеджер. После установки в системе появляется бинарь ollama и фоновый сервис, который держит API.
Первый запуск:
# открыть интерактивное меню: модели, интеграции, настройки
ollama
# скачать и запустить модель в терминале
ollama run gemma3
# скачать модель без запуска
ollama pull qwen3
# список локальных моделей
ollama ls
# запущенные процессы
ollama ps
# остановить модель
ollama stop gemma3Хендшейк с API:
curl http://localhost:11434/api/chat -d '{
"model": "gemma3",
"messages": [{ "role": "user", "content": "Привет" }]
}'"""...""". Для мультимодальных моделей можно сразу указать путь к картинке: ollama run gemma3 "Что на этом фото? /Users/me/photo.png".API: локально, в облаке и через OpenAI SDK
Локальный API живёт на http://localhost:11434/api. Это нативный формат Ollama: /api/chat, /api/generate, /api/embed, /api/tags, /api/pull, /api/push, /api/ps.
Cloud API доступен по https://ollama.com/api с тем же набором эндпоинтов. Авторизация через ключ:
export OLLAMA_API_KEY=your_api_key
curl https://ollama.com/api/chat \
-H "Authorization: Bearer $OLLAMA_API_KEY" \
-d '{ "model": "gpt-oss:120b", "messages": [{"role":"user","content":"Hi"}] }'OpenAI-совместимый слой позволяет переиспользовать существующий код. В Python достаточно поменять base_url:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # значение не проверяется локально
)
response = client.chat.completions.create(
model="qwen3",
messages=[{"role": "user", "content": "Объясни TCP за минуту"}],
)
print(response.choices[0].message.content)Официальные SDK от Ollama тоже есть: pip install ollama для Python, npm i ollama для JavaScript/TypeScript. В Python-клиенте функция передаётся в tools напрямую — клиент сам соберёт JSON Schema.
Tool calling
Function calling в Ollama работает в трёх режимах: одиночный вызов, параллельные вызовы и agent loop с многократными итерациями. Минимальный пример с Python SDK:
from ollama import chat
def get_temperature(city: str) -> str:
"""Возвращает текущую температуру в городе."""
return {"New York": "22°C", "London": "15°C"}.get(city, "Unknown")
messages = [{"role": "user", "content": "Какая температура в Нью-Йорке?"}]
response = chat(model="qwen3", messages=messages, tools=[get_temperature], think=True)
if response.message.tool_calls:
call = response.message.tool_calls[0]
result = get_temperature(**call.function.arguments)
messages.append(response.message)
messages.append({"role": "tool", "tool_name": call.function.name, "content": str(result)})
final = chat(model="qwen3", messages=messages, tools=[get_temperature], think=True)
print(final.message.content)Для agent loop в цикле проверяете response.message.tool_calls, выполняете инструменты, докладываете результаты обратно — пока модель не перестанет вызывать tools. Streaming работает в тех же режимах: чанки thinking, content и tool_calls накапливаются и отправляются в следующий запрос.
Modelfile: свои сборки моделей
Mod elfile — текстовый рецепт сборки своей модели поверх существующей. Минимальный пример:
# Modelfile
FROM gemma3
SYSTEM """Ты — спокойный технический ассистент. Отвечаешь по делу, без воды."""
PARAMETER temperature 0.4
PARAMETER num_ctx 8192Сборка и запуск:
ollama create my-assistant -f Modelfile
ollama run my-assistantТак удобно фиксировать системный промпт и параметры под конкретный кейс — review кода, расшифровки встреч, кастомер-саппорт — и подключать получившуюся модель к интеграциям как обычную.
Ollama Cloud: тяжёлые модели без своей видеокарты
Облачные модели запускаются той же командой, плюс суффикс -cloud в имени:
ollama signin
ollama run gpt-oss:120b-cloudПод капотом запросы уходят на серверы Ollama, но клиент и API остаются те же. Это нужно, когда модель не помещается в локальную память или вы хотите гнать batch-задачи на инфраструктуре провайдера. При желании Ollama можно перевести в local only режим и отключить облачные функции.
Интеграции с кодинг-агентами
Отдельная сильная сторона — команда ollama launch <tool>, которая поднимает агента поверх Ollama и сразу прокидывает каталог моделей. Поддерживаются: Claude Code, Codex CLI, Codex App, OpenCode, Copilot CLI, Droid, Goose, Pi, Pool, VS Code, Cline, Roo Code, JetBrains, Xcode, Zed, n8n, marimo, Onyx, OpenClaw, Hermes Agent.
Для кодинг-агентов это означает один и тот же шаблон: ставите Ollama, ставите агента, запускаете ollama launch <agent> — и агент работает на ваших локальных или облачных моделях вместо чужого API.
Codex + Ollama: связка-новинка
OpenAI Codex получил нативную поддержку Ollama сразу в двух форматах: терминальный Codex CLI и десктопное приложение Codex App для macOS и Windows. Идея простая: вы держите Codex как кодинг-агента, а движок моделей — Ollama (локально или в облаке). Это работает в обе стороны: ollama launch codex поднимает CLI поверх Ollama, ollama launch codex-app делает то же для десктопа, а codex --oss ходит в Ollama как в обычного провайдера.
Установка Codex CLI
npm install -g @openai/codexnum_ctx через Modelfile, иначе агент будет терять историю и циклиться.Быстрый запуск через Ollama
Если Codex уже установлен, проще всего отдать управление Ollama:
ollama launch codexПри запуске Ollama обновляет каталог моделей и передаёт его Codex для этой сессии. Чтобы только сконфигурировать связку, без запуска:
ollama launch codex --configРучная настройка через codex --oss
Когда нужен контроль над флагами Codex, запускайте его напрямую с флагом --oss:
# любая дефолтная модель Ollama
codex --oss
# конкретная локальная модель
codex --oss -m gpt-oss:120b
# облачная модель Ollama
codex --oss -m gpt-oss:120b-cloudПрофили в ~/.codex/config.toml
Постоянная конфигурация удобнее, чем флаги на каждый запуск. Добавьте Ollama как провайдера и опишите профили:
# ~/.codex/config.toml
[model_providers.ollama-launch]
name = "Ollama"
base_url = "http://localhost:11434/v1"
[profiles.ollama-launch]
model = "gpt-oss:120b"
model_provider = "ollama-launch"
[profiles.ollama-cloud]
model = "gpt-oss:120b-cloud"
model_provider = "ollama-launch"Запуск нужного профиля:
codex --profile ollama-launch # локальная gpt-oss:120b
codex --profile ollama-cloud # облачная gpt-oss:120b-cloudCodex App: десктоп-агент
Codex App — десктопное приложение OpenAI для macOS и Windows. Ollama прописывает в нём свой OpenAI-совместимый эндпоинт, и приложение начинает работать с локальными и облачными моделями Ollama без ручной настройки. Поддержка появилась в Ollama v0.24.0.
Базовый сценарий — одна команда:
ollama launch codex-appПосле этого Codex App открывается, и можно сразу запускать задачу или открывать репозиторий. Настройка персистентна: при следующем открытии Codex модель остаётся выбранной.
Явный выбор модели:
# облачная модель Ollama
ollama launch codex-app --model kimi-k2.6:cloud
# локальная модель
ollama launch codex-app --model gemma4:31bКогда нужно вернуть Codex App к прежнему профилю — без Ollama:
ollama launch codex-app --restoreOllama восстановит исходный конфиг приложения. Если Codex App открыт, спросит разрешения на перезапуск. Перед перезаписью конфигов делается бэкап в ~/.ollama/backup/codex-app/ (на Windows ~ — это домашняя папка пользователя). Профиль Codex CLI, который ведёт ollama launch codex, существует отдельно и не пересекается с профилем приложения.
Из полезных фич самого Codex App:
- Встроенный браузер. Открывает локальные серверы и сайты, аннотации прямо по странице работают как запросы на изменение.
- Review mode. Просмотр изменений, комментарии и итерации по правкам без выхода из приложения.
ollama launch codex-app. Если приложение уже запущено и не переключило модель, разрешите Ollama перезапустить его или закройте Codex App и запустите команду снова.Когда брать связку Codex + Ollama
- Локальный код-ревью без отправки в OpenAI. Repo не уходит наружу, Codex работает с тем, что есть на машине.
- Эксперименты с open-source моделями. Подменили модель в профиле, перезапустили Codex, сравнили результат.
- Гибрид локального и облачного. Лёгкие задачи на локальной gpt-oss, тяжёлый рефакторинг — на cloud-варианте через тот же провайдер.
- Air-gapped окружения. Когда внешние API закрыты, а кодинг-агент нужен.
Тарифы и лимиты
| Режим | Стоимость | Ограничения |
| Локальные модели | Бесплатно | Скорость и максимальный размер модели зависят от железа |
| Ollama Cloud | Платная подписка на ollama.com | Нужен аккаунт и API-ключ. Биллинг по использованию |
| API | Локальный — без лимитов | Облачный — по тарифу аккаунта |
Для прод-нагрузки разумно держать OLLAMA_HOST на отдельной машине с GPU и подключать к нему все клиенты по сети. Версионирование API нестрогое: ломающие изменения редкие, анонсируются в release notes.
Практические сценарии
- Локальный кодинг-агент. Codex CLI + Ollama, профиль
ollama-launch. Весь репозиторий остаётся на машине. - RAG-пайплайн.
embeddinggemmaилиnomic-embed-textдля эмбеддингов, любая чат-модель для генерации. Всё через локальный API. - Свой системный промпт через Modelfile. Один раз собрали
my-reviewer, подключили к VS Code или JetBrains черезollama launch. - Vision-обработка. Gemma 3 разбирает скриншоты багов и пишет JIRA-описания.
- Batch-инференс через cloud. Большой прогон на gpt-oss:120b-cloud, локальный код тот же — отличается только имя модели.
- n8n + Ollama. Workflow-автоматизация без отправки данных во внешние API.
Ссылки
- Документация: docs.ollama.com
- Загрузка: ollama.com/download
- Реестр моделей: ollama.com/library
- GitHub: github.com/ollama/ollama
- Codex CLI интеграция: docs.ollama.com/integrations/codex
- Codex App интеграция: docs.ollama.com/integrations/codex-app
- Полный список интеграций: docs.ollama.com/integrations
- API-справочник: docs.ollama.com/api
- Modelfile: docs.ollama.com/modelfile
- Discord: ссылка с главной страницы docs.ollama.com
По теме
Если у вас идея вынести часть пайплайна на локальные модели или собрать гибрид Codex с Ollama под свою команду — напишите в Telegram @pimenov