42 функции · оркестрация агентов · MIT

Справочник функций xwork

Граница агент/orchestrator-цикла (v2.3.1, 15-е расширение): build.bat xwork включает библиотеку (автоматически тянет xllm + xllm-session). xwork владеет оркестрацией, политикой рабочей области, выполнением инструментов, артефактами и планированием компакции; провайдерские протоколы и история диалогов остаются в xllm / xllm-session.

Жизненный цикл агента (5 функций)

xworkAgentConfigInit / Create / Destroy цикл

Обнуление конфигурации (корень рабочей области, режим исследования, бюджет) → создание непрозрачного дескриптора агента → уничтожение освобождает все ресурсы.

void xworkAgentConfigInit(xwork_agent_config* pConfig); xwork_agent* xworkAgentCreate(const xwork_agent_config* pConfig); void xworkAgentDestroy(xwork_agent* pAgent);

xworkAgentWorkspaceRoot запрос

Возвращает корень рабочей области агента (заимствованный указатель) — граница песочницы чтения/записи.

Управление раундами (6 функций)

xworkAgentRunBegin / Run / RunEnd раунд

Трёхфазные раунды: Begin начинает задачу, Run гоняет цикл до false (раунд завершён), RunEnd освобождает состояние. Run внутри вызывает xllm, разбирает вызовы инструментов, исполняет их и возвращает результаты.

xwork_agent_run xworkAgentRunBegin(xwork_agent* p, const char* sPrompt); bool xworkAgentRun(xwork_agent* p, xwork_agent_run* pRun); void xworkAgentRunEnd(xwork_agent* p, xwork_agent_run* pRun);

xworkAgentCancel / Resume контроль

Отмена выполняемого раунда (выполнение инструмента прерывается, состояние сохраняется); восстановление отменённого раунда.

Регистрация инструментов (10 функций)

xworkAgentRegisterBuiltinTools / RegisterBuiltinReadOnlyTools встроенные

Одновызовая регистрация встроенного набора (чтение/запись файлов, листинг каталогов, glob); ReadOnly-вариант — только подмножество чтения.

xworkAgentRegisterTool / UnregisterTool / UnregisterToolsBySource свои

Регистрация своего инструмента (имя, описание, схема параметров, колбэк); снятие с регистрации по дескриптору или пакетом по источнику. Реестр имеет номер поколения — горячее обновление набора не прерывает текущий раунд.

bool xworkAgentRegisterTool(xwork_agent* p, const xwork_tool_def* pTool);

xworkAgentToolAt / ToolCount / ToolRegistryGeneration запрос

Перечисление зарегистрированных инструментов (для интерфейсов утверждения); номер поколения отслеживает горячие обновления.

Типы субагентов (5 функций)

xworkAgentRegisterSubagentType / UnregisterSubagentType / SubagentTypeCount

Регистрация / снятие с регистрации / перечисление типов субагентов — каждый тип связывает свой набор инструментов и уровень прав. С RunReadOnlySubagent образует многоагентные топологии.

xworkAgentRunReadOnlySubagent порождение

Порождает субагента указанного типа в режиме только чтение и выполняет один раунд (исследование / поиск).

Уведомления и запросы (8 функций)

xworkAgentTakeTaskNotices уведомления

Забирает накопленные уведомления задач (начало/конец вызова инструмента, создание артефактов, смена состояния) — источник данных для интерфейсов утверждения и трасс; до N за вызов.

uint32 xworkAgentTakeTaskNotices(xwork_agent* p, xwork_task_notice* pNotices, uint32 iCapacity);

Компакция (3 функции)

xworkAgentCompact / MaybeCompact / CommitCompaction

Ручная или автоматическая (по порогам бюджета) компакция контекста в связке с операторами xllm-session; Commit подтверждает результат (read-метки сохраняют артефакты инструментов).

Практическое подтверждение — release/agent-demo/. Полный исходник: lib/xwork.