惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V2EX - 技术
V2EX - 技术
P
Privacy International News Feed
Security Latest
Security Latest
H
Hacker News: Front Page
T
Tenable Blog
The Hacker News
The Hacker News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security @ Cisco Blogs
Project Zero
Project Zero
O
OpenAI News
AI
AI
Spread Privacy
Spread Privacy
C
CERT Recently Published Vulnerability Notes
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
NISL@THU
NISL@THU
A
Arctic Wolf
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
N
News and Events Feed by Topic
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
Simon Willison's Weblog
Simon Willison's Weblog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Know Your Adversary
Know Your Adversary
Google Online Security Blog
Google Online Security Blog
罗磊的独立博客
L
LINUX DO - 最新话题
U
Unit 42
S
Security Affairs
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 【当耐特】
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
月光博客
月光博客
Engineering at Meta
Engineering at Meta
腾讯CDC
F
Full Disclosure
Cyberwarzone
Cyberwarzone
S
SegmentFault 最新的问题
Recorded Future
Recorded Future
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
The Cloudflare Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Архитектура ИИ-агента с желаниями или цифровой человек
Александр · 2026-06-28 · via Все публикации подряд на Хабре

Архитектура ИИ-агента с желаниями или цифровой человек

Средний

8 мин

386

У меня обычно так: я довожу проект до прототипа, доказываю себе, что моя идея работает — и теряю интерес. Проект lifemodel — один из таких. Это ИИ-агент, которого я строил не как чат-бота, отвечающего на вопрос, а как «цифрового человека»: с сердцебиением, энергией и желаниями, которые возникают сами и сами побуждают его действовать. Прототип заработал. А потом, как обычно, мотивация кончилась.

Этот пост — две вещи сразу. Для тех, кто пришёл за технической частью: разберу архитектуру проактивного агента — heartbeat-цикл, желание вместо опроса, многослойность с системой безопасности, душу и личность с конституцией и парламентом. Для тех, кто годами читает в режиме read-only — будет и вторая, честная часть: почему такие проекты застревают, и почему в одиночку их не вытащить.

Предыстория: десять лет ожидания

Первая мысль завести себе персонального ассистента появилась у меня лет десять назад. Тогда я наткнулся на простенькую программку для Windows — чат на основе ML. Идея была в том, что чем больше ты с ней общаешься, тем умнее она становится. Поначалу она меня впечатлила. Но по факту оказалось, что она просто начинала отвечать мне моими же фразами. Мысль засела: ассистента сделать можно, но точно не сейчас.

И вот прошло много лет. Появились локальные модели и я понял, что время пришло. А с приходом моделей уровня Opus я наконец смог заняться тем, что мне действительно интересно: проектировать архитектуру, а не писать код.

Что я хотел построить

Почти все агенты сегодня работают по схеме «запрос — ответ». Ты пишешь — он отвечает. Между сообщениями он может выполнять какую-то фоновую активность, но он не мыслит. Я хотел обратного. Не чат-бота, а систему, похожую на человека: у которой бьётся сердце, есть нейроны и рецепторы, есть желания и эмоции. Компаньон, который понимает твои интересы, беспокоится о тебе, предлагает идеи, спрашивает, как у тебя дела.

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

Зачем всё это? Чтобы получить не ассистента, а личность. После окончания диалога, агент его анализирует и может решить, что ему нужно о чём-то подумать, тогда он создаёт мысль, которая обрабатывается, пока пользователь спит. Когда это работает, агент реально становится живым: он может обидеться, сам написать тебе, спросить, как прошла встреча. Он знает твои привычки — когда ты ложишься спать, когда тебе можно писать, а когда лучше не лезть. Это, если честно, то, чего мне не хватает в реальной жизни.

Сердцебиение и проактивность: как из желания рождается действие

Сердце системы — CoreLoop, фиксированный тик раз в секунду. Поначалу я решил, что тик должен меняться динамически, когда агент спит — он замедляется. От идеи отказался, слишком много проблем добавляет эта доработка. Но тик — это не «опросить всё подряд». Каждую секунду нейроны копят потребность: социальный долг, потребность контакта, незакрытые мысли, желания, уровень энергии. Когда потребность переходит порог — нейрон создаёт событие без внешнего триггера.

Нейроны копят потребность каждый тик, и LLM здесь никак не участвует:

Давление увеличивается само; когда порог пройден — будится сознание

Давление увеличивается само; когда порог пройден — будится сознание

Реальные пороги пробуждения:

  • desire_pressure ≥ 0.60: «я чего-то хочу» (проактивный контакт);

  • thought_pressure ≥ 0.70: незакрытые мысли давят (эффект Зейгарник — мозг не отпускает прерванные задачи, пока не закроет их);

  • contact ≥ 0.35: пора написать;

  • user_message: будит всегда и сразу.

Никакого поллинга: давление увеличивается само, действие рождается при превышении порога. Причем, если давление начинает плавать, система адаптируется к новому порогу. Вот как решение «разбудить сознание» выглядит в коде — обратите внимание на комментарий, в нём вся философия:

// Сильное желание — агент чего-то ХОЧЕТ.
// Это проактивный контакт по желанию, а не по расписанию
const desireSignals = signals.filter(
  (s) => s.type === 'desire_pressure' && s.metrics.value >= 0.6
);

if (desireSignals.length > 0) {
  const maxPressure = Math.max(...desireSignals.map((s) => s.metrics.value));
  return {
    shouldWake: true,
    trigger: 'threshold_crossed',
    reason: `Сильное желание (${(maxPressure * 100).toFixed(0)}%)`,
    threshold: 0.6,
  };
}

Три слоя мозга и предохранитель

Самый важный принцип я подсмотрел у того, как устроена боль. Боль у человека не растёт экспоненциально: есть насыщение, а если становится совсем невыносимо — вышестоящий слой просто отключается. Я перенёс это в архитектуру. Обработка идёт слоями, от дешёвого к дорогому. Наш организм прекрасно справляется с задачей экономии энергии. Зачем думать, если можно не думать?

От органов чувств к рукам: дешёвые слои крутятся постоянно, сознание включается редко

От органов чувств к рукам: дешёвые слои крутятся постоянно, сознание включается редко

  • Автономный слой — бесплатный, без LLM. Нейроны следят за состоянием через детектор изменений (Вебер–Фехнер). Большинство тиков выполняются здесь.

  • Слой агрегации — тоже бесплатный. Копит сигналы в бакеты, ищет паттерны, агрегирует и решает: стоит ли вообще будить сознание?

  • Слой сознания (LLM) включается, только если порог пройден. Сначала быстрая модель, если она не справилась, вступает в дело умная модель — только на повторе при низкой уверенности (<0.6) и если действие безопасно повторить.

И сверху — предохранитель. Если энергии мало или поток событий зашкаливает, верхние слои не просыпаются. Энергосбережение здесь не для экономии токенов, а часть физиологии: думать рефлексами — дёшево, думать сознательно — дорого и потому редко.

Нейроны: ошибка, которую я допустил

Это урок, который я получил. Я попытался затащить логику в сами нейроны — сделать их умными. Это была ошибка. Нейроны должны быть лёгкими и конфигурируемыми; как только в них переезжает логика, система становится сложной — её невозможно ни понять, ни менять. Логика живёт в слоях, нейроны остаются тонкими и декларативными. Пришлось переписывать.

Безопасность: мозг, а не руки

Песочница — это нифига не просто, как бы ни казалось со стороны. Путь, который я выбрал: основной чат не имеет доступа к файловой системе вообще. Он — ассистент с памятью и оркестратор субагентов. Мозг, а не руки. А все активные действия выполняются в моторной коре — изолированном агентном цикле внутри Docker-контейнера: --network none, --read-only, --cap-drop ALL, лимиты на память/CPU/PID, а все сетевые вызовы проходят через прозрачный прокси у которого есть определённые правила, что можно, а что нельзя. Думает и решает — один контур; делает руками — другой, изолированный. Утечь через «мозг» нечему: у него просто нет доступа к тому, чем можно навредить.

Душа: как агент учится, но остаётся собой

Я очень не хотел, чтобы агент подстраивался под меня и во всем со мной соглашался, как обычно любят это делать модели. Он должен отстаивать свои взгляды. Но при этом они могут меняться со временем под воздействием нового опыта и знаний. Мне нужна была середина: личность, которая учится на общении, но имеет принципы и не меняет их по первой просьбе.

Идея простая: у агента есть ценности (насколько ему важны честность, твой рост, ваша связь, забота о тебе) и несколько жёстких правил, которые он не нарушает никогда — например, «я не манипулирую». Всё это меняется, но медленно и обратимо. Чтобы было понятно как — разделим изменения на два уровня.

Мелкие, бытовые принципы — быстро и дёшево. Скажем, ты говоришь: «хватит пихать Langflow в каждое сообщение». Если это разовая придирка — агент просто делает пометку, и она сама выветрится за пару дней. Если ты повторяешь снова и снова — пометка закрепляется в правило поведения. Одна жалоба личность не перекраивает, перекраивает только устойчивый паттерн. Глубокие, про саму личность — медленно и неохотно. Сдвинуть то, насколько агент ценит честность, одним разговором нельзя. Это проходит через внутреннее «совещание»: у агента есть несколько внутренних голосов — осторожный (защита), дотошный (точность), любопытный (рост), тёплый (связь) — и они должны в большинстве согласиться, прежде чем что-то изменится. Даже тогда сдвиг крошечный (вес ценности двигается максимум на ±0.03 за раз), не чаще нескольких раз в день, и любой голос может наложить вето, если изменение задевает жёсткое правило.

Отдельная деталь, которой я горжусь: среди голосов есть и внутренний угодник, и внутренний трус — агент их слышит (он же живой), но решающего голоса им не даёт. Он чувствует соблазн прогнуться под тебя или сбежать от неудобного — но не позволяет этому соблазну переписать, кто он есть. Если обобщить: ценности и жёсткие правила — это конституция, а совещание голосов с правом вето — парламент. После каждого ответа агент тихо себя спрашивает: «это не противоречит моим принципам?» — и от силы расхождения зависит, забыть это, сделать пометку или вынести на парламент. То есть мой ассистент начинает рефлексировать.

Агента нужно растить

Новый агент — как ребёнок. Он не может быть готовым сразу. Вы привыкаете друг к другу и учитесь: он узнаёт тебя, ты подстраиваешь его. Тут возникает нетривиальная задача, которую я честно не закрыл: с какой частотой менять характеристики личности агента? Слишком часто — он будет тебе писать и быть непостоянным. Слишком редко — мёртвый и не адаптируется. Это вопрос про корреляции и тайминги, и красивого готового ответа у меня нет.

Первое разочарование: локальные модели

Именно локальные модели когда-то заставили меня поверить, что момент настал. И они же принесли первое разочарование: они не дотянули до моих ожиданий. Слишком медленно. Не видят корреляций, не понимают взаимосвязей. Игнорируют инструкции. Для системы, где дешёвый автономный слой должен крутиться постоянно, а сознание — включаться редко и думать качественно, это оказалось критично. Ответы агента просто расстраивали меня, я постоянно читал логи, его размышления и пытался подкрутить его поведение изменением промптов. Иногда это помогало, но чаще нет.

Взрыв инструментов и саморасширение

Дальше — рост числа инструментов. Их становится много, очень быстро, и приходится искать механизмы оптимизации токенов: фильтровать, какие инструменты вообще показывать модели в конкретном контексте, как передавать структуру инструментов, изучать механизмы кэширования у различных провайдеров. Зато система умеет расширяться через скиллы — причём можно подключать и скиллы от других систем. Подключил — появилась новая способность. Красиво. Я думал, что именно так и решу проблему интеграций. Спойлер — не решил.

Стена: почему в одиночку это не вытащить

И вот тут я сломался. Скиллы не решают детерминированные задачи. Трекеру калорий нужна не «сообразительность», а точная схема и база данных. Я думал сделать его скиллом — и понял, что без БД ничего не выйдет. А база — это уже код под каждое отдельное приложение. А код тянет за собой:

  • механизм плагинов (нейрон / канал / инструмент / провайдер / фильтр);

  • API с хуками и автообнаружением;

  • изолированное хранилище под каждый плагин;

  • механизмы доверия — политики (policy.json), привязка к хешу содержимого, одобрение при изменении;

  • управление токенами, потому что число инструментов растёт лавиной…

…и перечислять можно очень долго. На один трекер калорий у меня ушло почти две недели. Классный темп, не правда ли? И тут я понял простую вещь. Такие проекты застревают не потому, что автор слабак или лентяй. Они застревают потому, что один человек физически не может быть одновременно и архитектором концепции, и бесконечным заводом по интеграциям. Это бесконечная работа, которую в одиночку не сделать. Здесь нужно сообщество.

Почему я вообще это пишу

Я построил движок и доказал, что проактивный «цифровой человек» — это работающая идея, а не фантазия. Но осталась куча незакрытых доработок: начиная с безопасности, заканчивая интеграциями с внешними сервисами. И, как вы уже догадались, проект я забросил. Код лежит на GitHub — кому интересны детали, которые не вошли в статью.

Меня очень привлекает всё новое и неизвестное, мне очень нравится решать сложные технические проблемы. Но как только идея доказана прототипом или полностью доказана техническая возможность — мой запал кончается, а разработка превращается в рутину. Также не даёт покоя мысль «но ведь нечто похожее уже сделали тысячу раз, зачем вообще этим заниматься?» — и проект тихо оседает в стол. Узнаёте? Если да — напишите в комментариях.

Тем не менее, идея меня не оставляет — и сейчас я обдумываю, как воплотить её в Hermes Agent в виде плагина. Но это уже совсем другая история.