xwork: оркестрация агентов
xllm отвечает за «разговор с моделью», xllm-session — за «память о сказанном», а xwork поверх них отвечает за превращение модели в агента, который делает работу: регистрация и исполнение инструментов, политика рабочей области, многоходовая оркестрация, уведомления и планирование компакции.
Введение
49.1 Границы трёх слоёв
| Слой | Отвечает | Не отвечает |
|---|---|---|
| xllm (гл. 34) | построение запросов, три диалекта, SSE, прокси | исполнение инструментов, история |
| xllm-session (гл. 35) | бюджет контекста, компакция, journal | оркестрация, инструменты |
| xwork | оркестрация агентов, регистрация/исполнение инструментов, политика рабочей области, артефакты, субагенты, уведомления, планирование компакции | протоколы провайдеров, CLI |
49.2 Жизненный цикл агента
xwork_agent_config cfg;
xworkAgentConfigInit(&cfg); /* корень рабочей области, режим, бюджет */
xwork_agent* agent = xworkAgentCreate(&cfg);
xworkAgentRegisterBuiltinTools(agent); /* встроенные чтение/запись/листинг и т.п. */
xworkAgentRegisterTool(agent, &myTool); /* пользовательский инструмент */
xwork_agent_run run = xworkAgentRunBegin(agent, "проанализируй этот каталог");
while ( xworkAgentRun(agent, &run) ) {
xwork_task_notice notices[8];
uint32 n = xworkAgentTakeTaskNotices(agent, notices, 8);
for ( uint32 i = 0; i < n; i++ ) { /* уведомления о вызовах/результатах инструментов */ }
}
xworkAgentRunEnd(agent, &run);
xworkAgentDestroy(agent);
42 открытых символа сгруппированы по стадиям жизненного цикла: конфигурация/создание/уничтожение 5, управление запуском 6 (включая отмену/возобновление), регистрация инструментов 10, типы субагентов 5, уведомления и запросы 8, компакция 3, прочее 5. Всё экспортировано в скрипты и во вложенный TCC.
49.3 Рабочая область и субагенты
Рабочая область xwork — граница песочницы агента: исследование с чтением/записью (внутренняя реализация или делегирование внешним rg/fd), отметки прочитанного с откатом на каталог, подключение бюджета. Система типов субагентов (xworkAgentRegisterSubagentType) позволяет агенту порождать по типу субагентов только на чтение (RunReadOnlySubagent) или полноправных — получается топология сотрудничества многих агентов.
Планирование компакции (xworkAgentCompact / MaybeCompact) работает в связке с операторами компакции xllm-session: длинные диалоги автоматически сходятся по контексту, а отметки прочитанного не дают потерять артефакты инструментов.
49.4 Практика: agent-demo
Каталог release/agent-demo/ в репозитории — полнофункциональная витрина xwork: однофайловый режим xs + браузерный фронтенд NativeHarness + движок ходов на C-скриптах (протокол поверх HTTP-опроса), приёмка в браузере пройдена целиком — включая шлюз согласования (вызовы инструментов требуют ручного одобрения), панели diff/plan и колонку трассировки исполнения. Это законченный пример связки четырёх библиотек: xwork + xllm + xllm-session + сайтовый VFS.
class: "app" добавляют этому стеку настольную форму: локальный HTTP + окно WebView2, а вместе с публикацией одним файлом получается настольное агентское приложение «по двойному щелчку».Типичные ошибки
Упражнения
Итоги
xwork = слой оркестрации агентов (42 символа, 15-е расширение) · три слоя = xllm (вызовы) / session (память) / work (оркестрация) · регистрация инструментов + субагенты + уведомления = полноценная форма агента · agent-demo = практика связки четырёх библиотек