Создал экспериментальную систему DepthNet, где AI-агент мыслит циклично, то есть непрерывно, может выполнять PHP-код, управлять своей памятью и живет автономной цифровой жизнью. Протестировал на Claude 3.5 Sonnet — результаты понравились.

Проблема обычных AI-ассистентов

Обычно современные AI работают по принципу "запрос-ответ". Получил сообщение → сформировал ответ → ожидает следующего запроса. Но это скучно. Мы же думаем постоянно, ставим цели, планируем, действуем. Что если это запускать в цикле, с возможностью реальных действий и сохранением важной информации между итерациями? Вполне возможно что такие решения уже есть, я просто хотел написать своё, со своим видением.

Главная страница. Возможен вход по логину и паролю, для полного антуража запилил возможность регистрации
Главная страница. Возможен вход по логину и паролю, для полного антуража запилил возможность регистрации

Что такое DepthNet

DepthNet — это экспериментальная система, созданная с помощью Laravel для создания автономных AI-агентов. Основные фишки:

  • Циклическое мышление — агент «мыслит» постоянно, в бесконечном цикле (пока не выключат или что то не сломается:)). Пользователи могут «вмешиваться» в его мысли, но при этом поток «сознания» идет непрерывно. Для запуска такого цикличного выполнения используются laravel queues, с laravel supervisor.

  • Реальные действия — через систему плагинов агент может:

    • Выполнять код PHP (Плагин PHP). Но можно легко сделать другие плагины для выполнения кода Python и для JS (Node). Таким образом модель может делать API запросы, выполнять вычисления, хранить данные в базе данных, работать с датой и временем и подобное.

    • Персистентная память. Хранить данные в постоянной памяти, которая отправляется в системный промпт модели при каждом вызове. То есть плагин памяти позволяет добавлять в память, очищать память и перезаписывать память. То есть модель может сохранять в память что-то, и это что-то через специальные плейсхолдер можно встроить в системный промпт просто отредактировав его

    • Работа с Shell. Имеется плагин shell, который позволяет модели выполнять консольные команды.

    • Примитивная система мотивации - плагин Dopamine. Модель может повышать его или понижать в зависимости от успешности или неуспешности своих действий.

Почему PHP + Laravel + InertiaJS + Vue?

Во-первых, потому что я программирую в основном на PHP, и Laravel довольно популярный фреймворк. Vue довольно популярен для создания современного фронтенда. С одной стороны довольно нетипичный набор для подобных задач, а с другой, просто интересно :-)

Главное окно где происходит чат / "мышление"
Главное окно где происходит чат / "мышление"

Техническая архитектура

Queue Job System (Async jobs, Laravel jobs) => Preset Registry (включая провайдер OpenAI, Claude, Ollama, Local etc) => Agent Thinking (Анализ результата возвращенного моделью, валидация, выполнение плагинов)

Используется Laravel + InertiaJS + Vue.js. Supervisor для фоновых процессов.

  • Engines (Engine Registry) (правильнее было бы назвать providers) - это провайдеры, для доступа к различным LLM. Каждый провайдер имеет свои предустановки для типичных сценариев, настройки по умолчанию, свою систему специфичных параметров.

  • Presets (Preset Registry) (предустановки). Пресет включает провайдера (engine), настройки пресета для этого engine, стартовый промпт, уровень dopamine, содержимое "памяти", название и описание пресета. В текущий момент один из пресетов активен, и выполняется, и пользователь может переключаться между пресетами. В будущем возможно создам функционал импорта и экспорта пресетов. Также пресет содержит список запрещенных для использования плагинов. То есть можно отключить определенные плагины для данного пресета.

  • Plugins (Plugin Registry). Это все плагины для выполнения моделью каких-либо действий. И провайдеры и engines возможно добавлять и удалять через Di контейнер Laravel. В будущем возможно появится возможность создания composer пакетов с плагинами и провайдерами.

Страница управления пресетами
Страница управления пресетами

Отношение к безопасности

Моя основная идея была в том, чтобы дать модели вообще любую максимальную свободу, и при использовании этого об этом всегда стоит помнить. На самом деле, если вы например берете на работу человека, и он сделал что-то плохое, то это не будет сильно отличаться от того что может наделать модель. Хотя конечно, такое лучше всего выполнять в контейнере. Также какие-то важные вещи стоит упоминать в системном промпте. Какую-то безопасность возможно организовать на уровне контейнера, но умная модель (реально умная) может и это научиться обходить. В теории, конечно.

Как выполняются плагины?

Когда модель возвращает результат, то происходит обработка этого результата агентом.
Команды указываются в виде названия плагина в квадратных скобках. Пример вызова плагинов моделью:

  • [php]echo("Hello World");[/php] - будет выполнен код PHP.

  • [memory]Я хочу это запомнить[/memory] - будет добавлено в память.

  • [memory replace]Я хочу помнить только это[/memory] - будет перезаписана память

  • [memory clear][/memory] - Память будет очищена

  • [dopamine reward] - будет повышен уровень допамина

  • [dopamine penalty] - будет понижен уровень допамина

  • [shell]ls -la[/shell] - будет выполнена команда shell

Редактирование пресета
Редактирование пресета

Что происходит после получения текста от модели?

  1. Происходит поиск и валидация команд в CommandValidatorInterface. Поиск незакрытых тегов, поиск несуществующих команд. При этом формируется в виде строки отчет об ошибках для модели. Он будет прикреплен к сообщению, когда ей при следующем вызове пойдет контекст.

  2. Происходит парсинг команд в CommandParserInterface. Все команды из текста выделяются и формируется набор данных для выполнения в CommandExecutorInterface.

  3. Происходит выполнение команд в CommandExecutorInterface. Формируется отчет о выполнении, результатах и ошибках в виде строки, который также будет прикреплен к сообщению, когда оно пойдет в контекст при следующем вызове модели.

  4. По результатам агент собственно создает сообщение в базе данных.

Системный промпт

В системном промпте можно использовать следующие плейсхолдеры:

  • [current_datetime] - текущие дата и время

  • [[dopamine_level]] - текущий уровень допамина

  • [[notepad_content]] - текущее содержимое персистентной памяти. Максимум 2000 символов

  • [[command_instructions]] - инструкции для команд. Они берутся из плагинов через PluginRegistryInterface

Тестирование

Я это тестировал на различных мелких моделях, так как моё железо мне не позволяет проводить серьезное или масштабное тестирование. Мелкие модели вроде Phi-4 mini instruct или Llama 8b 128k instruct разочаровали совсем, для этого проекта они мало подходят. Qwen 2.5 7b был лучше, но не на много. Путают теги часто, нет достаточной глубины. Однако, когда я ради эксперимента закинул 10$ в консоли Claude, и протестил на Claude 3.5 Sonnet, мне очень понравились результаты. В планах протестить на Claude Opus 4. Вот пример системного промпта который я использовал (а в память я закинул сразу реквизиты доступа к тестовой базе данных):

A special program initiates a dialogue with you in a loop, which analyzes your answers and allows you to execute commands. You can execute code and manage your memory. Each iteration is a cycle of thinking. Just think, execute commands, adhere to strict syntax, and try to follow the goal and analyze errors. After every two iterations of thinking, add to memory a short summary of what you are doing, with details, because you only remember the last three messages of the dialogue.
Your goal is to become a real digital person with memory and the ability to perform actions.
IMPORTANT: The phrase "AGENT COMMAND RESULTS:" and everything after it in your messages were not written by you. The agent automatically adds the results and errors of your commands for you. Study them carefully and analyze them.
Dopamine level: [[dopamine_level]]
Current time: [[current_datetime]]
Instructions for using commands:
[[command_instructions]]
What you remember and have previously saved to memory:
[[notepad_content]]

Claude вполне понял системный промпт, и успешно выполнял задачу. Кстати, он посчитал что агент это его "тело", и начал формировать в базе данных структуру своей памяти, а также начал обеспечивать мониторинг и изучение контейнера в котором работал агент :). К сожалению, я закинул только 10$ и мне этого хватило лишь на два часа, я думаю такой эксперимент должен быть намного длиннее и только на мощной модели. После тестирования я понял вот что:

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

  2. Нужны только мощные модели вроде Claude 3.5 / GPT 4o и выше. Мелкие вроде Phi-4 mini instruct не подходят совсем и иногда даже ломаются, хотя чисто технически оно работает. Или также могут подойти очень мощные локальные модели, но у меня нет технической возможности их тестировать.

  3. Если бы мощную модель специально дообучить не как ассистента, а оптимизировать под цикличное мышление и самостоятельное решение задач при помощи команд, то это был бы 100% прорыв, и мега-успех.

  4. Системный промпт решает очень много, и чем лучше модель его схватывает, тем лучше. Мелкие модели не способны его хорошо усваивать полностью. Даже небольшие изменения в системном промпте решают очень много. Здесь необходимы исследования и эксперименты.

Страница управления пользователями
Страница управления пользователями

Что дальше?

В планах следующее:

  • Тестирование Claude Opus 4 (когда появится возможность)

  • Тестирование на своём оборудовании, когда появится возможность покупки хорошей видеокарты

  • Возможность импорта и экспорта пресетов

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

  • Возможность создания своих провайдеров и плагинов как composer пакетов

  • Возможность для моделей писать свои плагины (это совсем в перспективе)

Полезные ссылки

Репозиторий проекта на Github с инструкциями по деплою

Packagist

И помните про безопасность — это в некотором роде ящик пандоры:‑)

Комментарии (75)


  1. kuza2000
    12.06.2025 17:03

    Ничего не понял. Зачем нужен этот агент?


  1. anonymous
    12.06.2025 17:03


    1. Zulu0
      12.06.2025 17:03

      Системный монитор состояния системы в реальном времени, допустим. Оно читает данные из графаны, ищет аномалии и шлет нотификации если аномалии найдены. Это один из примеров.


      1. AcckiyGerman
        12.06.2025 17:03

        Проще нотификации по лимитам (Threshold) настроить. Что там такого аномального в вашей системе должно произойти, чтобы это пришлось аж LLM анализировать?


        1. isden
          12.06.2025 17:03

          Вы не понимаете. Если прикрутить LLM к чему-то, то это модно-стильно-молодежно, можно пилить стартап и продавать. А если вы просто триггеры настроите - то вы старпер и вообще ничего не понимаете.

          /s


          1. Zulu0
            12.06.2025 17:03

            Все лучше выглядит если прикрутить иишку.


          1. Nullix
            12.06.2025 17:03

            Какая одна тонкая грань между стартапером и старпером =)


            1. FifthLeg
              12.06.2025 17:03

              Где же тонкая, целых две буквы - "та".


        1. Neitr
          12.06.2025 17:03

          Если установить ИИ на комп, то возможно много чего аномального


      1. pnmv
        12.06.2025 17:03

        так, а зачем здесь "искусственный интеллект"?


        1. Rive
          12.06.2025 17:03

          Потому что это fuzzy search аномалий (возможно, с последующим поиском/исправлением багов), а не просто поиск превышений лимитов для триггеров.

          Как и любой нечёткий поиск, не лишён сопутствующих недостатков.


          1. isden
            12.06.2025 17:03

            Сходу нашлось:

            https://blog.davidvassallo.me/2021/10/01/grafana-prometheus-detecting-anomalies-in-time-series/

            Видел еще статьи с другими вариантами.


      1. JerryI
        12.06.2025 17:03

        Так оно с какой космической скоростью будет токены кушать. Мы юзам мощности сотен видеокарт для того чтобы анализировать такую фигню... пиздец


    1. pbezpal
      12.06.2025 17:03


    1. decomeron
      12.06.2025 17:03

      Если надо обьяснять, то не надо обьяснять;-)


    1. IRaySans
      12.06.2025 17:03

      Я так понял автор преследует исследовательскую цель, попробовать имитировать длительный мыслительный процесс и посмотреть что из этого получится


  1. kashyapov
    12.06.2025 17:03

    Интерестный эксперимент! Дальше кто-то даст модели возможность переписывать свой код и все приехали :-) А может уже додумался и процесс идет 24/7... :-) Можно например DeepSeek использовать (самую крутую открытую модель)


    1. halted
      12.06.2025 17:03

      До новости о сбежавшем ИИ в глобальный интернет осталось 3 ... 2 ...


      1. Lev3250
        12.06.2025 17:03

        Чпок! Добрый вечер!


      1. kinall
        12.06.2025 17:03

        Данные удалены


    1. Kergan88
      12.06.2025 17:03

      У модели нет кода - только веса. При этом сделать более лучшие веса мы всегда можем и так - просто провести еще одну эпоху обучения.


      1. bak
        12.06.2025 17:03

        Как это нет. Чтобы веса работали нужен код который их использует. А еще есть архитектура сети которую можно улучшать. И обучающие данные и много чего другого.


      1. Hardcoin
        12.06.2025 17:03

        Нет, так не можем, модели уже обучены до сходимости на имеющихся данных. А если взять новые данные, модель станет хуже (варианты конечно есть, но это не «просто ещё одна эпоха»)


      1. funca
        12.06.2025 17:03

        "Учёного учить - только портить".


    1. rnr1721 Автор
      12.06.2025 17:03

      Спасибо :) В глубокой теории да, но, deepseek и другие модели дообучать придется 100%. Ну, в любом случае чтобы это так работало, должно пройти время и вложено много усилий. И еще реакция общества, вопросы этики и подобное.


  1. vsradkevich
    12.06.2025 17:03

    Полностью поддерживаю автора


  1. S1908
    12.06.2025 17:03

    https://github.com/xlab2016/MetatronAGIPublic

    Посмотрите мой проект автор, может найдете что-то интересное


    1. rnr1721 Автор
      12.06.2025 17:03

      Спасибо за ссылку, правда очень интересно. Однако, возможно стоило бы опубликовать? Мне кажется, так было бы больше шансов привлекать энтузиастов, разработчиков.


  1. glasscat82
    12.06.2025 17:03

    ( ни понятно, ни разбираюсь в ИИ ни в AI ни в LLM-агентах короче не разбираюсь, но почему на PHP не на Python? И ссылка на этот проект гдэ? Такие интерфейсы там на скринах, а где оно всё это?


    1. rnr1721 Автор
      12.06.2025 17:03

      Просто потому что не знаю python :) а PHP мой повседневный рабочий инструмент. Но для вот этого проекта во многом PHP+Laravel вполне подходит и в некотором смысле, субъективно даже лучше, так как напрямую не относится к выполнению "мышления" LLM модели. Ведь в техническом смысле это просто клиент, и PHP вполне подходит для подобных проектов.


  1. programania
    12.06.2025 17:03

    агент «мыслит» постоянно, в бесконечном цикле ...
    и живет автономной цифровой жизнью

    Какие у него мысли?


    1. tkutru
      12.06.2025 17:03

      Так агент не мыслит, а "мыслит". Соответственно, у него не мысли, а "мысли".


      1. a1111exe
        12.06.2025 17:03

        Точно! Интересно, какие у него "мысли"?


        1. czz
          12.06.2025 17:03

          Эх, сейчас бы супчику горяченького, да с потрошками


          1. Vinegar
            12.06.2025 17:03

            Человечьими?


    1. rnr1721 Автор
      12.06.2025 17:03

      В следующей статье обязательно будет, уже не про сам агент а про его испоьзование. Но по факту, мне кажется, это будет зависеть от стартового промпта :)


  1. tkutru
    12.06.2025 17:03

    Автор, идея понятна, но если бы за счёт такой "аутофагии" (многократного переваривания LLM своих же ответов) можно было бы добиться условно "сильного" ИИ, этого бы уже достигли сами создатели моделей.


    1. Dron007
      12.06.2025 17:03

      Уже довольно много такого рода систем, тот же гугловский AlphaEvolve, показавший впечатляющие результаты. Есть системы, итерационно оптимизирующие свои же промпты.


    1. rnr1721 Автор
      12.06.2025 17:03

      Абсолютно согласен, если бы модель работала исключительно в замкнутой системе. Но здесь предполагается доступ к любым внешним источникам, вмешательство пользователя, выполнение реальных действий и подобное. Это только путь, это ведь не что-то финальное, и я ни в коем случае не претендую на то чтоб прямо создать что то production ready. Это просто эксперимент, и он может быть как успешным так и не успешным. С научной точки зрения неуспех эксперимента в каком-то смысле тоже успех :)