Учебник

Kimi K2: AI ищет в интернете и считает за вас без программиста

Ваши менеджеры тратят часы на сбор данных из разных источников? Kimi K2.6 от Moonshot - модель, которая сама ищет в интернете, считает и анализирует документы. Разбираем, как за вечер настроить агента для стройфирмы или турагентства без программиста. Цены, примеры кода и сравнение с аналогами.

Макс Космов··9 мин чтения

Ваши менеджеры тратят по 3-4 часа в день на сбор данных: цены конкурентов, курсы валют, статусы заказов. Потом ещё час на расчёты. Половина информации устаревает к обеду. А вы платите за эту рутину зарплату.

Вот как за один вечер собрать AI-агента, который сам ищет в интернете, считает и выдаёт готовый ответ. Без найма программиста. Без курсов на полгода. Просто скопировать код, вставить свой API-ключ - и готово.

Разберём на примере стройфирмы: менеджеру нужно быстро узнать текущие цены на металлопрокат и посчитать смету. Вместо того чтобы открывать 5 сайтов и лезть в Excel, он просто пишет запрос - AI всё делает сам.

Что такое Kimi K2.6 и зачем это вашему бизнесу

Kimi K2.6 - это языковая модель от китайской компании Moonshot AI. Она умеет не просто отвечать на вопросы, а вызывать внешние инструменты: искать в интернете, считать, обращаться к вашим базам данных. Это как если бы у вас появился стажёр, который сам гуглит, считает на калькуляторе и приносит готовый результат.

Модель вышла в апреле 2026 года. Её главная фишка - архитектура MoE (Mixture of Experts). Грубо говоря, внутри модели сидит много «экспертов», и для каждого вопроса активируются только нужные. Это делает её быстрее и дешевле, чем обычные модели того же размера.

Ключевые цифры:

  • Цена за входные данные (input): $0.95 за 1 миллион токенов. Если модель уже встречала ваш запрос (cache-hit) - всего $0.16.
  • Цена за ответ (output): $4.00 за 1 миллион токенов.
  • Максимальный контекст: 262 000 токенов - это примерно 200 страниц текста. Можно загрузить весь прайс-лист или договор целиком.

Для сравнения: Claude Sonnet от Anthropic стоит $3 за вход и $15 за выход. Kimi K2.6 на вход в 3 раза дешевле, на выход - почти в 4 раза. При этом качество агентных задач - на уровне.

Почему MoE - это не страшно, а выгодно

Обычные модели (их называют dense) при обработке каждого слова перебирают все свои нейроны. MoE-модели устроены хитрее: у них есть много «экспертов» (суб-сетей), и для каждого слова включается только 2-4 из них. Остальные спят.

Что это даёт вам:

  • Скорость - ответ приходит быстрее.
  • Качество - модель «видела» много разных примеров, поэтому отвечает точнее.
  • Цена - вы платите только за работу активных экспертов, а не за всю сеть.

Для бизнеса это значит: вы можете гонять через модель десятки запросов в день и не разориться.

Как начать: регистрация за 5 минут

Всё делается через сайт platform.moonshot.cn.

  1. Заходите на platform.moonshot.cn.
  2. Регистрируетесь по email (можно без китайского номера).
  3. В разделе API Keys создаёте ключ.
  4. На баланс падает ~$5 бесплатных кредитов - хватит на пару сотен запросов.

Пополнять счёт можно через Visa/Mastercard или Alipay. Российские карты проходят, но если нет - используйте OpenRouter (о нём ниже).

OpenRouter: запасной вариант без головной боли

Если прямой доступ к api.moonshot.cn нестабилен (а такое бывает), используйте OpenRouter. Это сервис-посредник: вы даёте ему один API-ключ, а он перенаправляет запросы к разным моделям.

Kimi K2.6 там доступен под именем moonshotai/kimi-k2.6. Цена примерно на 5% выше, но зато:

  • Один ключ для всех моделей.
  • Автоматический fallback - если Moonshot недоступен, запрос уходит к другому провайдеру.
  • Не нужно думать о геоблокировках.

Для небольшого бизнеса - идеальный вариант. Для высокой нагрузки с кешированием - лучше прямой конечная точка API.

Вот как выглядит подключение:

import os
from openai import OpenAI

# Нативный Moonshot
client = OpenAI(
 api_key=os.environ["MOONSHOT_API_KEY"],
 base_url="https://api.moonshot.cn/v1"
)

# Через OpenRouter
# client = OpenAI(
# api_key=os.environ["OPENROUTER_API_KEY"],
# base_url="https://openrouter.ai/api/v1"
# )

Как сэкономить 83% на запросах: prompt caching

Самая вкусная фишка Kimi K2.6 - кеширование. Если вы отправляете одинаковое начало запроса (например, системный промпт с правилами компании), модель запоминает его и при повторном обращении берёт из кеша. Стоимость падает с $0.95 до $0.16 за миллион токенов - экономия 83%.

Как этим пользоваться:

  • Всё, что не меняется (системный промпт, описание бизнес-процессов, справочная информация), ставьте в начало запроса.
  • Переменную часть (конкретный вопрос, текст контракта) - после.

Пример для стройфирмы: у вас есть большой блок с типовыми условиями договора подряда. Он будет кешироваться. Вы меняете только название объекта и сумму - платите копейки.

# Системный промпт - стабилен, будет кешироваться
SYSTEM_PROMPT = """Ты ассистент для анализа юридических документов.
Общие принципы работы:
- Выделяй ключевые условия контракта
- Указывай потенциальные риски
- Сравнивай с типовыми условиями рынка
- Форматируй ответ структурированно

База знаний:
[здесь большой блок контекста о праве, который не меняется]
"""

# Переменные части - ниже по prompt
def analyze_contract(contract_text: str) -> str:
 response = client.chat.completions.create(
 model="kimi-k2", # слаг на Moonshot
 messages=[
 {"role": "system", "content": SYSTEM_PROMPT}, # кешируется
 {"role": "user", "content": f"Проанализируй контракт:\n\n{contract_text}"}
 ],
 max_tokens=2000
 )
 
 # Проверяем кеш
 usage = response.usage
 if hasattr(usage, 'prompt_cache_hit_tokens') and usage.prompt_cache_hit_tokens > 0:
 saved = usage.prompt_cache_hit_tokens * (0.95 - 0.16) / 1_000_000
 print(f"Сэкономлено на кеше: ${saved:.4f}")
 
 return response.choices[0].message.content

Полный пример агента: поиск в интернете + расчёты

Теперь самое интересное. Вы даёте модели инструменты - функции, которые она может вызывать. Например, поиск в интернете и калькулятор. Модель сама решает, когда что использовать.

Разберём на примере турагентства: менеджеру нужно узнать курс доллара и посчитать стоимость тура в рублях. Вместо того чтобы открывать курс ЦБ и умножать в уме, он пишет один запрос.

import json

# Определяем инструменты агента
tools = [
 {
 "type": "function",
 "function": {
 "name": "web_search",
 "description": "Поиск информации в интернете",
 "parameters": {
 "type": "object",
 "properties": {
 "query": {"type": "string", "description": "Поисковый запрос"}
 },
 "required": ["query"]
 }
 }
 },
 {
 "type": "function",
 "function": {
 "name": "calculate",
 "description": "Математические вычисления",
 "parameters": {
 "type": "object",
 "properties": {
 "expression": {"type": "string", "description": "Математическое выражение"}
 },
 "required": ["expression"]
 }
 }
 }
]

# Агентный цикл
def run_agent(user_query: str) -> str:
 messages = [{"role": "user", "content": user_query}]
 
 while True:
 response = client.chat.completions.create(
 model="kimi-k2",
 messages=messages,
 tools=tools,
 tool_choice="auto",
 max_tokens=2000
 )
 
 message = response.choices[0].message
 messages.append({"role": "assistant", "content": message.content, 
 "tool_calls": message.tool_calls})
 
 # Если нет вызовов инструментов - агент завершил работу
 if not message.tool_calls:
 return message.content
 
 # Выполняем вызовы инструментов
 for tool_call in message.tool_calls:
 args = json.loads(tool_call.function.arguments)
 
 if tool_call.function.name == "web_search":
 result = f"[результат поиска: '{args['query']}']"
 elif tool_call.function.name == "calculate":
 try:
 result = str(eval(args["expression"]))
 except Exception as e:
 result = f"Ошибка: {e}"
 
 messages.append({
 "role": "tool",
 "tool_call_id": tool_call.id,
 "content": result
 })

result = run_agent("Сколько будет стоить облачный inference 1M запросов к GPT-4o vs Kimi K2.6?")
print(result)

Как это работает на практике: менеджер пишет «Найди курс доллара на сегодня и посчитай стоимость тура в 1500$ в рублях». Модель сначала вызывает поиск, получает курс, потом вызывает калькулятор, умножает - и выдаёт готовую цифру. Всё за пару секунд.

Как ускорить: параллельные вызовы инструментов

Kimi K2.6 умеет вызывать несколько инструментов одновременно. Например, если нужно узнать цену акции и последние новости - модель сделает это за один шаг, а не по очереди.

import json
import asyncio
from openai import AsyncOpenAI

async def parallel_tool_agent(query: str) -> str:
 """Агент с параллельным вызовом инструментов"""
 
 client = AsyncOpenAI(
 api_key=os.environ["MOONSHOT_API_KEY"],
 base_url="https://api.moonshot.cn/v1"
 )
 
 tools = [
 {
 "type": "function",
 "function": {
 "name": "get_stock_price",
 "description": "Получить текущую цену акции",
 "parameters": {
 "type": "object",
 "properties": {"ticker": {"type": "string"}},
 "required": ["ticker"]
 }
 }
 },
 {
 "type": "function",
 "function": {
 "name": "get_news",
 "description": "Получить последние новости по компании",
 "parameters": {
 "type": "object",
 "properties": {"company": {"type": "string"}},
 "required": ["company"]
 }
 }
 }
 ]
 
 messages = [{"role": "user", "content": query}]
 
 response = await client.chat.completions.create(
 model="kimi-k2",
 messages=messages,
 tools=tools,
 tool_choice="auto",
 max_tokens=2000
 )
 
 msg = response.choices[0].message
 
 if msg.tool_calls:
 messages.append({"role": "assistant", "content": msg.content, 
 "tool_calls": msg.tool_calls})
 
 # Выполняем все tool calls параллельно
 async def execute_tool(tool_call):
 args = json.loads(tool_call.function.arguments)
 if tool_call.function.name == "get_stock_price":
 result = f"Цена {args['ticker']}: $142.50"
 elif tool_call.function.name == "get_news":
 result = f"Новости {args['company']}: Квартальная прибыль выросла на 23%"
 else:
 result = "Инструмент недоступен"
 
 return {
 "role": "tool",
 "tool_call_id": tool_call.id,
 "content": result
 }
 
 # Параллельное выполнение
 tool_results = await asyncio.gather(*[
 execute_tool(tc) for tc in msg.tool_calls
 ])
 messages.extend(tool_results)
 
 # Финальный ответ
 final = await client.chat.completions.create(
 model="kimi-k2",
 messages=messages,
 max_tokens=1000
 )
 return final.choices[0].message.content
 
 return msg.content

result = asyncio.run(parallel_tool_agent(
 "Проанализируй текущее состояние Apple: цена акции и последние новости"
))
print(result)

Для бизнеса это означает: если нужно собрать данные из 5 источников - модель сделает это за один цикл, а не за 5. Экономия времени и денег.

Длинный контекст: храним историю сессии

262 000 токенов - это примерно 200 страниц текста. Вы можете загрузить в модель всю историю переписки с клиентом, прайс-лист на 1000 позиций и типовой договор. Модель будет помнить всё и отвечать с учётом контекста.

Вот класс агента с памятью: он хранит историю диалога и автоматически обрезает её, если контекст становится слишком большим.

from dataclasses import dataclass, field
from typing import List
import tiktoken

@dataclass
class KimiAgent:
 system_prompt: str
 max_context_tokens: int = 200_000 # оставляем запас до 262K
 history: List[dict] = field(default_factory=list)
 
 def _count_tokens(self, messages: list) -> int:
 """Грубая оценка токенов"""
 total_chars = sum(len(str(m)) for m in messages)
 return total_chars // 4 # примерная оценка
 
 def add_message(self, role: str, content: str):
 self.history.append({"role": role, "content": content})
 
 # Обрезаем историю если превышаем лимит
 while self._count_tokens(self.history) > self.max_context_tokens:
 if len(self.history) > 2:
 self.history.pop(0) # удаляем старейшее
 else:
 break
 
 def run(self, user_input: str, tools: list = None) -> dict:
 self.add_message("user", user_input)
 
 messages = [
 {"role": "system", "content": self.system_prompt}
 ] + self.history
 
 kwargs = {
 "model": "kimi-k2",
 "messages": messages,
 "max_tokens": 2000
 }
 if tools:
 kwargs["tools"] = tools
 kwargs["tool_choice"] = "auto"
 
 response = kimi_client.chat.completions.create(**kwargs)
 msg = response.choices[0].message
 
 self.add_message("assistant", msg.content or "")
 
 return {
 "response": msg.content,
 "tool_calls": msg.tool_calls,
 "context_estimate": self._count_tokens(self.history)
 }

# Агент-исследователь с памятью
agent = KimiAgent(
 system_prompt="Ты исследовательский агент. Ты помнишь всю историю нашего разговора и строишь на ней выводы."
)

print(agent.run("Расскажи о MoE-архитектуре")["response"][:200])
print(agent.run("Как эта архитектура влияет на inference speed?")["response"][:200])
print(agent.run("Подведи итог нашего обсуждения")["response"][:200])

Сравнение с Llama 4 Maverick: что выбрать

Параметр Kimi K2.6 Llama 4 Maverick
Input price $0.95/M $0.15/M
Output price $4.00/M $0.60/M
Контекст 262K 1M
Инструмент use quality Высокий Средний-высокий
Cache-hit price $0.16/M нет кеша у Together
Провайдеры Moonshot, OR Together, Fireworks, OR

Kimi K2.6 дороже по базовой цене, но с кешированием разрыв сокращается. Инструмент use у K2.6 стабильнее - меньше выдумывания аргументов функций. Если вам нужен огромный контекст (1M токенов) - Llama 4 Scout за $0.08/M будет выгоднее. Для агентных задач с умеренным контекстом - K2.6 надёжнее.

Частые вопросы

Почему Kimi K2.6 дороже K2.5?

K2.6 показывает улучшенные результаты на задачах рассуждения и агентных сценариях. Moonshot поработал над качеством планирования и следования инструкциям. Контекст расширен с 256K до 262K (незначительно). Появилась явная модель кеширования - при высоком cache-hit rate K2.6 становится выгоднее.

Как включить prompt caching?

Ничего включать не нужно. API автоматически определяет повторяющийся префикс и кеширует его. Для максимальной эффективности: держите системный промпт первым и неизменным между запросами. Узнать cache-hit можно из response.usage.prompt_cache_hit_tokens.

Kimi K2 доступен в России без VPN?

api.moonshot.cn технически доступен - нет геоблокировки российских IP. Стабильность может быть неравномерной. Если прямое соединение ненадёжно - OpenRouter как европейский прокси решает проблему без изменения кода (только смена base_url).

В чём преимущество MoE перед обычной архитектурой?

MoE активирует только часть весов на каждый токен. Это даёт более высокую скорость и меньшую стоимость вычислений при том же общем числе параметров. Для пользователя - более быстрый ответ и выгодная цена. Минус: MoE-модели сложнее в самостоятельном запуске - нужно держать все веса в памяти, хотя активируется только часть.

Как Kimi K2.6 сравнивается с Claude Sonnet в агентных задачах?

Claude Sonnet ($3/$15 per 1M) дороже K2.6 ($0.95/$4.00) на вход, дешевле на выход. По качеству агентного поведения Claude Sonnet стабильнее на очень сложных многошаговых задачах - годы боевая среда-опыта. Kimi K2.6 сопоставим на типовых агентных паттернах (поиск + рассуждение + действие) при меньшей цене за вход. Для первых экспериментов с агентами - K2.6 хороший выбор с учётом стоимости.

Что внедрить прямо сейчас

  1. Зарегистрируйтесь на platform.moonshot.cn или OpenRouter.
  2. Скопируйте код агента из раздела «Полный пример».
  3. Замените инструменты на свои: например, поиск по вашей CRM или расчёт скидки.
  4. Дайте ссылку менеджеру - пусть пишет запросы на естественном языке.

Всё. Никаких курсов. Никаких программистов. Один вечер - и AI работает на вас.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.