Относиться к подагентам OpenClaw как к функциям без состояния, а не как к постоянным членам команды

✍️ OpenClawRadar📅 Опубликовано: 1 апреля 2026 г.🔗 Source
Относиться к подагентам OpenClaw как к функциям без состояния, а не как к постоянным членам команды
Ad

Разработчик на r/openclaw описывает смену своей ментальной модели при работе с мульти-агентными командами в OpenClaw. Изначальное отношение к суб-агентам как к младшим сотрудникам с именами, историями и ожиданием наличия памяти привело к неделям путаницы и сломанных рабочих процессов.

Аналогия с функцией

Прорыв произошел благодаря осознанию, что суб-агенты — это не мини-версии меня или постоянные члены команды, а функции. Конкретно:

  • Суб-агенты — это вызовы функций без состояния, а не постоянные члены команды
  • Это специализированные инструменты, а не младшие версии разработчика
  • Они работают по принципу чистый ввод → вывод, не запоминая контекст
  • Они возвращают значения вызывающей стороне, а не общаются друг с другом

В источнике приведены примеры кода, противопоставляющие неправильный и правильный подходы:

# НЕПРАВИЛЬНО: Отношение к суб-агенту как к постоянному объекту
frank = Agent("Frank")
frank.build_feature()
frank.fix_it() # Предполагается, что Фрэнк помнит

ПРАВИЛЬНО: Отношение к суб-агенту как к вызову функции

result = frank_task( instructions="Создать страницу входа", context={"requirements": reqs, "design": mockup} )

frank_task выполняется, возвращает вывод, завершается

Ad

Практические последствия

Эта смена ментальной модели имеет несколько конкретных последствий:

1. SOUL.md как строка документации функции: Вместо профилей личности SOUL.md становится спецификацией:

# frank_task()

Назначение: Создание функций Next.js Входные данные: требования (dict), дизайн (опционально) Выходные данные: {код, тесты, заметки} Ограничения: Без внешних вызовов API без одобрения

2. Явная передача состояния для итерации: Поскольку суб-агенты не запоминают контекст, вы должны передавать всю необходимую информацию в параметрах:

# НЕПРАВИЛЬНО
frank_fix("исправить баг") # создание, попытка, завершение
frank_fix("все еще сломан") # новое создание, нет контекста

ПРАВИЛЬНО

result = frank_fix({ "code": previous_output, "issues": ["сбой валидации входа", "сломан CSS для мобильных"], "test_cases": failing_tests }) # Полный контекст в параметрах

3. Координатор как основная программа: Разработчик становится функцией-оркестратором, а не менеджером команды:

def build_feature(spec):

Вызов функций по порядку

code = frank_build(spec) tests = quinn_audit(code)

if tests["passed"]: return deploy(code) else: # Итерация с явным контекстом fixed = frank_fix({ "code": code, "failures": tests["failures"] }) return deploy(fixed)

Параллели с дизайном ПО

Этот подход соответствует устоявшимся принципам проектирования ПО:

  • Единственная ответственность: Каждый суб-агент делает одно дело
  • Чистые функции: Одинаковый ввод → одинаковый вывод
  • Модульное тестирование: Тестировать вывод каждого суб-агента независимо
  • Композируемость: Соединять суб-агенты как quinn_test(frank_code(spec))
  • Отсутствие состояния: Нет скрытых зависимостей

Разработчик отмечает, что ценность не в «больше агентов = умнее», а в «специализированные функции = чище архитектура».

Результаты после смены

После принятия этой модели разработчик создал:

  • Базу данных из 11 249 тренажерных залов за 2 недели
  • 5 специализированных агентов (а не 5 универсалов)
  • CRM с рабочими процессами андеррайтинга
  • Ежедневное взаимодействие с Moltbook

Все с использованием суб-агентов без состояния и координатора, который поддерживает контекст.

📖 Read the full source: r/openclaw

Ad

👀 Смотрите также

Карты потока: обучение интегралу диффузионной модели для ускоренной выборки
Гайды

Карты потока: обучение интегралу диффузионной модели для ускоренной выборки

Сандер Дилеман объясняет карты потоков — нейронные сети, которые напрямую предсказывают интеграл ОДУ диффузионной модели, обеспечивая более быструю семплировку, обучение на основе вознаграждения и управляемость.

OpenClawRadar
Кастомный сервер 4x RTX PRO 6000 против Dell GB300: выбор для 30 тонко настроенных пайплайнов
Гайды

Кастомный сервер 4x RTX PRO 6000 против Dell GB300: выбор для 30 тонко настроенных пайплайнов

Подробный анализ двух локальных архитектур для запуска ~30 доработанных продакшн-пайплайнов: собственного 4U-сервера с 4-8x RTX PRO 6000 Blackwell (по 96 ГБ) и NVIDIA GB300 Grace Blackwell с 252 ГБ HBM3e + 496 ГБ унифицированной памяти.

OpenClawRadar
Руководство: Запуск GitHub Copilot с локальной LLM на Windows через сервер Lemonade
Гайды

Руководство: Запуск GitHub Copilot с локальной LLM на Windows через сервер Lemonade

Разработчик создал пошаговое руководство по настройке GitHub Copilot для работы с локальной большой языковой моделью (LLM) на компьютере Framework Desktop с использованием Lemonade Server, чтобы восполнить недостаток простых инструкций для этой конфигурации в Windows.

OpenClawRadar
Практические советы по OpenClaw: Начинайте с малого, избегайте типичных ошибок
Гайды

Практические советы по OpenClaw: Начинайте с малого, избегайте типичных ошибок

Разработчик делится уроками, полученными при создании персонального трекера здоровья с помощью OpenClaw, подчеркивая узкую направленность, детерминированные рабочие процессы и использование одной языковой модели. В посте приводятся конкретные наблюдения за моделями, сравнивающие ChatGPT и Gemini.

OpenClawRadar