· · 2 минут чтения

Где Ваш Агент Помнит Вещи? Практическое Руководство по Хранению Истории Чата

Управляется сервисом или клиентом? Линейная или ветвящаяся? Архитектурное решение, которое определяет, что ваш ИИ-агент реально умеет — с примерами кода на C# и Python.

Agent Framework AI Agents Architecture CSharp Python
Эта статья также доступна на:English, Català, Español, Deutsch, Français, Português, Italiano, 日本語, 中文, 한국어, हिन्दी, Polski, Türkçe, العربية, Bahasa Indonesia, Nederlands

Этот пост переведён автоматически. Чтобы просмотреть оригинал, нажмите здесь.

При создании ИИ-агента вы тратите большую часть энергии на модель, инструменты и промпты. Вопрос о том, где хранится история разговора, кажется деталью реализации — но это одно из важнейших архитектурных решений, которые вам предстоит принять.

Оно определяет, могут ли пользователи ветвить беседы, отменять ответы, возобновлять сессии после перезапуска и покидают ли ваши данные вашу инфраструктуру. Команда Agent Framework опубликовала глубокий анализ.

Два основных паттерна

Управляемое сервисом: ИИ-сервис хранит состояние разговора. Ваше приложение хранит ссылку, и сервис автоматически включает нужную историю в каждый запрос.

Управляемое клиентом: ваше приложение поддерживает полную историю и отправляет нужные сообщения с каждым запросом. Сервис не имеет состояния. Вы контролируете всё.

Как Agent Framework это абстрагирует

AgentSession session = await agent.CreateSessionAsync();
var first = await agent.RunAsync("Меня зовут Алиса.", session);
var second = await agent.RunAsync("Как меня зовут?", session);
session = agent.create_session()
first = await agent.run("Меня зовут Алиса.", session=session)
second = await agent.run("Как меня зовут?", session=session)

Быстрый справочник по поставщикам

ПоставщикХранилищеМодельКомпрессия
OpenAI/Azure Chat CompletionsКлиентN/AВы
Foundry Agent ServiceСервисЛинейнаяСервис
Responses API (по умолчанию)СервисВетвящаясяСервис
Anthropic Claude, OllamaКлиентN/AВы

Как выбрать

  1. Нужны ветвление или «отмена»? → Responses API, управляемый сервисом
  2. Нужен полный контроль над данными? → Управляемое клиентом с DB-бэкендом
  3. Простой чатбот? → Линейное, управляемое сервисом, — достаточно

Читайте полный пост для полного дерева решений.

Поделиться:
Просмотреть исходный код этой статьи на GitHub ↗
← Aspire 13.2: Поддержка Bun, Улучшенные Контейнеры и Меньше Трений при Отладке
VS Code 1.118: Copilot CLI получает имена сессий, значки модели и TypeScript 7.0 Nightly →