Открыть в интерактивной справке · markdown для агентов: https://neuraldeep.ru/docs/drift-api.md
Drift · персональный агент через API
Drift — наш self-hosted AI-агент с памятью, sandbox'ом, скиллами и Google/Telegram-интеграциями. Обычно ты с ним общаешься на neuraldeep.ru/driftagent или через Telegram-бота. Но можно ходить и через публичный API — из curl, Python-SDK, Cursor/Cline/Continue, своих ботов или CI.
Доступ: только при оплаченном Drift (Starter / Pro). Trial и admin-grant — нет.
Лимиты: наследуются от тарифа Hub-аккаунта (RPM / parallel / session / week — см. limits ниже).
Source-метка: каждый запрос через API стампится как source=api — видно в логах кабинета и админки (web / api / telegram / scheduler).
1 · Выпустить токен
Открой Dashboard → секция «🤖 Drift API tokens» → «+ создать токен». Имя — для своих заметок («cursor», «my-bot», etc.). Plaintext значение (dft_*) показывается один раз при создании — скопируй сразу. Лимит 5 активных токенов на юзера. Отозвать можно в любой момент кнопкой «отозвать».
2 · Отправить сообщение
OpenAI-совместимый /v1/chat/completions. Внутри запускается ReAct-агент с тулзами (sandbox shell, web-search, Google, etc.) — ответ может прилететь не сразу, агент может крутить несколько итераций. Stream через stream: true рекомендуется для длинных задач.
curl https://drift.neuraldeep.ru/v1/chat/completions \
-H "Authorization: Bearer dft_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-oss-120b",
"messages": [
{"role": "user", "content": "Что у меня запланировано на завтра?"}
]
}'
curl -N https://drift.neuraldeep.ru/v1/chat/completions \
-H "Authorization: Bearer dft_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-oss-120b",
"messages": [{"role":"user","content":"Прочитай мой MEMORY.md и пересскажи кратко"}],
"stream": true
}'
# event-stream возвращает:
# data: {"choices":[{"delta":{"content":"..."}}],...}
# data: [DONE]
from openai import OpenAI
# base_url указывает на Drift, токен — личный dft_*
client = OpenAI(
api_key="dft_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://drift.neuraldeep.ru/v1",
)
# Non-stream
r = client.chat.completions.create(
model="gpt-oss-120b", # или qwen3.6-35b-a3b — две основные LLM Hub'а
messages=[{"role": "user", "content": "Запиши в память: проект Y стартует 1 июня"}],
)
print(r.choices[0].message.content)
# Stream
stream = client.chat.completions.create(
model="gpt-oss-120b",
messages=[{"role": "user", "content": "Покажи список моих файлов и пересскажи MEMORY.md"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Поле
model— это какой upstream LLM использовать внутри агента:gpt-oss-120b(131k ctx, длинный reasoning, рекомендуется по умолчанию) илиqwen3.6-35b-a3b(256k ctx, нативные tool-calls). Если не указать — fallback на gpt-oss-120b. Не передавай весь history вmessages— Drift сам поднимает память из своей БД, иначе будет дубль. Шли только последний user-промпт.
3 · Управлять чатами (conversations)
По умолчанию все сообщения идут в один дефолтный чат юзера. Если хочешь разделять контексты (например, рабочий и личный) — создавай chat'ы явно и передавай conversation_id.
# список своих чатов
curl https://drift.neuraldeep.ru/v1/conversations \
-H "Authorization: Bearer dft_..."
# создать новый
curl -X POST https://drift.neuraldeep.ru/v1/conversations \
-H "Authorization: Bearer dft_..." \
-H "Content-Type: application/json" \
-d '{"title": "Project X — research"}'
# → {"id": 1234, "title": "Project X — research", ...}
# отправить сообщение в конкретный чат
curl -X POST https://drift.neuraldeep.ru/v1/chat/completions \
-H "Authorization: Bearer dft_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-oss-120b",
"messages": [{"role":"user","content":"Какой статус по project X?"}],
"conversation_id": 1234
}'
# удалить чат
curl -X DELETE https://drift.neuraldeep.ru/v1/conversations/1234 \
-H "Authorization: Bearer dft_..."
4 · Прочитать историю
curl "https://drift.neuraldeep.ru/v1/history?conversation_id=1234&limit=50" \
-H "Authorization: Bearer dft_..."
# → {"messages":[{"id":..., "role":"user|assistant", "content":"...", "created_at":..., "source":"api"}, ...]}
Поле
sourceв каждом сообщении показывает откуда оно пришло:web(neuraldeep.ru/driftagent),api(этот endpoint),telegram(бот),scheduler(фоновая задача по расписанию). Используй его если у тебя смешанные источники и нужно фильтровать.
Что НЕ поддерживается
· редактирование/regenerate сообщений (только append) · · branching (forks) · · webhook'и события · · multi-image в одном сообщении (один — да, через /v1/files/upload)
Свои tools / skills / MCP-серверы — поддерживается с 28.05.26. См. раздел «🔌 Свои tools, skills, MCP» ниже: можно передавать caller-tools (return-to-caller pattern), inline SKILL.md и подключать remote MCP-серверы прямо в запросе.
Разделы справки (markdown для агентов)
- Начало · ключ, ошибки, квоты
- Текст · чат
- Векторизация
- Реранжирование
- Транскрибация
- Распознавание картинок
- Structured output
- Клиенты · агенты
- Остатки лимитов · Limits API
- Поиск · Search API
- OCR · документы
- Картинки · Image API
- Музыка · Music API
- Анонимизация ПДн · PII Guard
- SpeechCore · STT
- Озвучка · TTS API
- Кто когда говорил · диаризация
- Решения по тексту · FRIDA-Decisions, clef-flash
- Drift · обзор
- Файлы + sandbox preview
- Свои tools, skills, MCP
- Задачи · proactive
- Память · memory
- Изоляция и безопасность
- Настройки агента
- Лимиты · ошибки
- Книга · поиск и MCP
- Стриминг
- SDK · Python / JS
- Приватность