Жизненный цикл агента (5 функций)
xworkAgentConfigInit / Create / Destroy цикл
Обнуление конфигурации (корень рабочей области, режим исследования, бюджет) → создание непрозрачного дескриптора агента → уничтожение освобождает все ресурсы.
xworkAgentWorkspaceRoot запрос
Возвращает корень рабочей области агента (заимствованный указатель) — граница песочницы чтения/записи.
Управление раундами (6 функций)
xworkAgentRunBegin / Run / RunEnd раунд
Трёхфазные раунды: Begin начинает задачу, Run гоняет цикл до false (раунд завершён), RunEnd освобождает состояние. Run внутри вызывает xllm, разбирает вызовы инструментов, исполняет их и возвращает результаты.
xworkAgentCancel / Resume контроль
Отмена выполняемого раунда (выполнение инструмента прерывается, состояние сохраняется); восстановление отменённого раунда.
Регистрация инструментов (10 функций)
xworkAgentRegisterBuiltinTools / RegisterBuiltinReadOnlyTools встроенные
Одновызовая регистрация встроенного набора (чтение/запись файлов, листинг каталогов, glob); ReadOnly-вариант — только подмножество чтения.
xworkAgentRegisterTool / UnregisterTool / UnregisterToolsBySource свои
Регистрация своего инструмента (имя, описание, схема параметров, колбэк); снятие с регистрации по дескриптору или пакетом по источнику. Реестр имеет номер поколения — горячее обновление набора не прерывает текущий раунд.
xworkAgentToolAt / ToolCount / ToolRegistryGeneration запрос
Перечисление зарегистрированных инструментов (для интерфейсов утверждения); номер поколения отслеживает горячие обновления.
Типы субагентов (5 функций)
xworkAgentRegisterSubagentType / UnregisterSubagentType / SubagentTypeCount
Регистрация / снятие с регистрации / перечисление типов субагентов — каждый тип связывает свой набор инструментов и уровень прав. С RunReadOnlySubagent образует многоагентные топологии.
xworkAgentRunReadOnlySubagent порождение
Порождает субагента указанного типа в режиме только чтение и выполняет один раунд (исследование / поиск).
Уведомления и запросы (8 функций)
xworkAgentTakeTaskNotices уведомления
Забирает накопленные уведомления задач (начало/конец вызова инструмента, создание артефактов, смена состояния) — источник данных для интерфейсов утверждения и трасс; до N за вызов.
Компакция (3 функции)
xworkAgentCompact / MaybeCompact / CommitCompaction
Ручная или автоматическая (по порогам бюджета) компакция контекста в связке с операторами xllm-session; Commit подтверждает результат (read-метки сохраняют артефакты инструментов).
release/agent-demo/. Полный исходник: lib/xwork.