HiAPI
Блог

Руководство

Курс по агентам посмотрел, а запустить не получается? Запустите пример с одним ключом

В X обсуждают: «Те, кто заплатил 500 баксов за курс, теперь могут смотреть его бесплатно». Курсов хватает, не хватает шага, на котором пример запускается. Эта статья о минимальной рабочей конфигурации.

Nov 3, 2026
Курс по агентам посмотрел, а запустить не получается? Запустите пример с одним ключом

В X есть пост с иронией: те, кто заплатил 500 долларов за курс по AI Agent, теперь могут смотреть его бесплатно. Оригинальный пост: https://x.com/deanwperkins/status/2116911546282733623 (автор Dean W. Perkins, @deanwperkins). Общий вывод в обсуждении: сами курсы не редкость, редкость — запустить то, что в них написано.

Это точно в точку. Большинство застревает не на понимании цикла агента, а на первом шаге: нет ключа к модели, который используется в примере кода, поменял модель — протокол не совпадает, не запускается, значит и проверить нечего.

Эта статья о минимальной рабочей конфигурации, а не о теории агентов.

В минимальном агенте всего три вещи

Отбросив фреймворки и абстракции, работающий агент — это три компонента:

  1. Модель, умеющая вызывать инструменты
  2. Набор определений инструментов (имя, параметры, описание)
  3. Цикл: модель решает, какой инструмент вызвать, вы выполняете, возвращаете результат модели, пока она не скажет, что закончила

Все эти мультиагентные системы, память и планирование из курсов — надстройки над этими тремя вещами. Сначала запустите эти три.

Шаг первый: подготовьте ключ

Первое задание в большинстве курсов — «получите API Key для какой-нибудь модели». Отсев на этом шаге немалый: регистрация, привязка карты, ожидание проверки, где-то ещё и заявка на квоту.

С единой точкой входа этот этап можно пропустить. Ключ HiAPI с единой аутентификацией охватывает текстовые модели Claude, GPT, Kimi, Grok, DeepSeek и другие и работает по стандартному протоколу Chat Completions.

Получив ключ, сначала убедитесь, что он работает:

curl -s https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "messages": [{"role": "user", "content": "说一句你好"}]
  }'

Если возвращается содержимое, с ключом всё в порядке.

Шаг второй: определите инструменты

Определение инструмента — это инструкция для модели. Она должна знать, какие инструменты есть и какие параметры нужны каждому.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询指定城市的当前天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "城市名,如 北京"}
            },
            "required": ["city"]
        }
    }
}]

Описание пишется одной фразой: модель по description решает, когда использовать этот инструмент. Чем яснее написано, тем ниже вероятность ошибки.

Шаг третий: напишите цикл

import json, requests

API = "https://api.hiapi.ai/v1/chat/completions"
KEY = "YOUR_HIAPI_API_KEY"
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

def run_weather(city):
    return {"city": city, "temp": 18, "condition": "晴"}  # 示例实现

messages = [{"role": "user", "content": "北京今天多少度?"}]

for _ in range(5):  # 防止死循环
    resp = requests.post(API, headers=HEADERS, json={
        "model": "gpt-6.1-sol",
        "messages": messages,
        "tools": tools,
    }).json()

    msg = resp["choices"][0]["message"]
    messages.append(msg)

    if not msg.get("tool_calls"):
        print(msg["content"])
        break

    for call in msg["tool_calls"]:
        args = json.loads(call["function"]["arguments"])
        result = run_weather(args["city"])
        messages.append({
            "role": "tool",
            "tool_call_id": call["id"],
            "content": json.dumps(result, ensure_ascii=False),
        })

После запуска вы увидите, как модель сначала решает вызвать get_weather, получает результат, а затем формулирует ответ одной фразой. Это и есть полный цикл агента.

Как выбрать модель

В том же цикле достаточно сменить поле model, чтобы поменять модель. Разница в стоимости огромная:

Модель Ввод Вывод Для чего
GPT-6 Luna $0.025 $0.125 Простые вызовы инструментов, классификация, извлечение
GPT-6.1 Terra $0.25 $1.25 Повседневные агенты, задачи с кодом
GPT-6.1 Sol $0.50 $2.50 Сложные многошаговые задачи
Claude Opus 5.5 $2.02 $10.08 Длинные задачи, требующие глубокого рассуждения

Один цикл вызова инструмента — это примерно несколько тысяч токенов, на самой дешёвой Luna один раз обходится меньше одной десятой фэня. Для экспериментов с курсом затратами можно пренебречь.

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

Три самых частых места, где застревают на курсе

Неверный формат возврата вызова инструментов. У разных поставщиков моделей есть различия в организации полей tool_calls. У моделей, совместимых с протоколом Chat Completions, формат унифицирован, и при смене модели код разбора менять не нужно.

Контекст растёт всё больше. Если каждый раунд тащить всю историю, к тридцатому раунду упрётесь в лимит. В курсе про стратегии обрезки расскажут позже, но знать об этой яме стоит заранее.

Модель не вызывает инструменты, а просто отвечает текстом. Обычно это из-за слишком расплывчатого описания инструмента или потому что в промпте не сказано явно «у тебя есть инструменты». Сделайте описание конкретнее или укажите это в системном промпте.

Что делать после запуска

Не торопитесь браться за фреймворки.

Когда минимальный цикл работает, добавьте по порядку следующее:

  1. Обработку ошибок: при сбое выполнения инструмента верните информацию об ошибке модели, чтобы она повторила попытку или пошла другим путём
  2. Учёт расхода: записывайте число токенов на каждый вызов, чтобы знать, куда уходят затраты
  3. Таймауты и повторные попытки: сетевые сбои — обычное дело
  4. И только потом фреймворки: если задача настолько сложна, что нужны мультиагентные системы или сложные конечные автоматы, тогда и фреймворк не опоздает

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

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

Обязательно ли использовать конкретную модель?

Нет. Достаточно, чтобы поддерживался вызов инструментов (function calling), и логика цикла будет универсальной. Если указанной в курсе модели нет, замена в той же ценовой категории не помешает пониманию.

В чём разница между бесплатными и платными курсами?

Если судить по обсуждению в X, разница больше в структуре и ответах на вопросы, а не в самих знаниях. Запускать примеры всё равно придётся самостоятельно в обоих случаях.

Можно ли вызывать инструментами настоящие API?

Да. Достаточно заменить run_weather на настоящий HTTP-запрос. Не забудьте перехватывать все исключения в функции инструмента, иначе один сбой разорвёт весь цикл.

Сколько стоит один запуск?

Минимальный пример — несколько тысяч токенов, на самой дешёвой модели один запуск обходится меньше одной десятой фэня, на дорогой — тоже всего несколько фэней. Для экспериментов о стоимости беспокоиться не нужно.

Ключевые выводы

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

Посмотреть доступные текстовые модели и цены


Источники

  • Повод для темы: Dean W. Perkins (@deanwperkins), https://x.com/deanwperkins/status/2116911546282733623
  • В посте нет ссылки на конкретный курс; статья не привязана ни к какому курсу и описывает только универсальную конфигурацию для запуска примеров
  • Примеры кода и данные о ценах подготовлены нашим сайтом, цены взяты из продакшн-среды HiAPI (2026-11-02)

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API