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

推荐订阅源

WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
T
Tenable Blog
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
P
Proofpoint News Feed
A
About on SuperTechFans
P
Privacy International News Feed
月光博客
月光博客
雷峰网
雷峰网
S
Secure Thoughts
博客园 - 叶小钗
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
The Cloudflare Blog
SecWiki News
SecWiki News
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
罗磊的独立博客
A
Arctic Wolf
阮一峰的网络日志
阮一峰的网络日志
Know Your Adversary
Know Your Adversary
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
小众软件
小众软件
有赞技术团队
有赞技术团队
博客园 - 司徒正美
T
Tailwind CSS Blog
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 миллионов точек без потерь
Оргмодель, процессы и агенты (Часть 1)
stas_makarov · 2026-05-21 · via Все публикации подряд на Хабре

Время на прочтение8 мин

Охват и читатели349

Кейс

Привет, Хабр! Я — Стас Макаров, ранее продуктовый аналитик в Haulmont, ныне свободный вайбкодер))

На прежнем месте работы я занимался BPM-продуктом — как из красивых схем, что рисуют аналитики, сделать работающее приложение. И на каждой встрече с клиентами или в тендерных документах всегда всплывала тема оргсруктуры.

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

Практически во всех лоукод-системах оргструктра есть часть базовой функциональности, но в инженерных BPM на базе движков Camunda или Flowable такой фичи по умолчанию нет. Это довольно странно, поскольку оба два этих вендора не просто делают движки, но поставляют полноценные платформы для энтерпрайз-решений, где это оргструктура однозначно востребована — но нет. Хотя у их младших собратьев по цеху, Bizagi и Bonita, оргструктры реализованы весьма неплохо.

В общем, в Jmix BPM, которым я занимался, тоже оргструктры не было. Все говорили, что хорошо бы сделать, но когда прикидывали стоимость разработки, так энтузиазм пропадал. Увы, против экономики не попрешь!

Это только на первый взгляд кажется это просто — подумаешь, оргструктура! Ну, отделы, в них должности, на должностях сотрудники, вот и все! Дальше это надо связать с процессами, с правами доступа, управлять изменениями, обеспечить аудит... Только копнешь — и открываются бездны, как всегда это бывает в кровавом энтерпрайзе.

Явление вайбкодинга

Понимая, что бюджета на эту тему объективно нет, я начал по-партизански пилить прототип. Ну а как иначе сдвинуть это с мертвой точки? — Только показать людям хоть что-то живое, проверить гипотезу, и потом уже бросать главные силы.

Тут надо сказать пару теплых слов про Jmix. Если коротко, его уникальность в том, что даже аналитик может собрать Spring Boot приложение с нормальным интерфейсом на Vaadin, не написав ни строчки кода на Java. Пусть это будут только CRUD-экраны, но это будет работающий прототип с живыми данными, а не слайды Power Point и не эскизы в Figma. А если аналитик имеет в бэкграунде инженерный опыт, то он может делать и более продвинутые вещи без помощи "настоящих" разработчиков — которые всегда заняты.

Сначала я пошел вполне традиционным путем: написал ТЗ, проработал модель данных, создал сущности, сгенерил стандартные экраны и допилил UI как мне было нужно.

Дальше пошли более сложные задачи: доработать стандартный дизайнер процессов Jmix, чтобы можно было назначать исполнителей через оргструктуру. Для этого уже требовалось влезать в код платформы и довольно сильно его кастомизировать, это уже задача со звездочкой.

Естественно, позвал на помощь ChatGPT. В принципе, мы с чатиком справились, но в режиме копипаста это получалось не слишком эффективно. В общем, наступил момент, когда мы уперлись.

И тут я познакомился с Cursor. Это полностью поменяло расклад. Теперь мы могли продвигаться гораздо быстрее. Так я стал вайбкодером))

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

Для работы с Курсором достаточно друга, у которого есть нероссийская карта, чтобы оплатить подписку. У Клода там какие-то танцы с бубнами, чтоб использовать его из наших локаций.

Конечно, я припозднился. Надо было раньше переходить к кодингу с агентом, а не с веб-ассистентом. Всему виной удобство — когда сидишь в своей уютненькой IDE-ешечке, да еще поверх нее почти лоукод-тулзы для модели данных и UI, так не хочется покидать зону комфорта...

Забегая вперед

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

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

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

Но тут пришла мысль: если у нас уже есть оргмодель, которая определяет, что данный сотрудник может и должен делать, то какая разница, человек это или агент?

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

И третья ключевая идея: чтобы ИИ действительно работал в агентском режиме, а не просто был бы встроенным чат-ботом с LLM, ему нужны инструменты — так пусть это будут процессы! То есть, agent tool = process! При этом мы получаем полную унификацию исполнения, наблюдаемость и расширяемость.

Какую боль это снимает:

  • Все хотят использовать агентов, но все опасаются пускать их внутрь корпоративного контура — что совершенно правильно.

  • Мы даем агенту права доступа и инструменты в виде процессов — тогда вся его деятельность ведется в строгих рамках и полностью отслеживается.

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

Ну а теперь давайте по порядку...

От оргструктры к оргмодели

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

Для этого было достаточно сделать дерево подразделений с должностями и назначение сотрудников на должности. Причем сотрудники тоже казались простой сущностью — это пользователи приложения. Такой макет был готов уже в декабре, еще без Курсора.

Вуаля и дело в шляпе? — Ан-нет! Кто у нас в организации владеет оргструктурой? — Правильно, HR. Значит, всякая система, которая заявляет, что она работаем с оргструктурой, должна быть потенциально совместима с основными HR-приложениями, допустим, SAP и 1С. При этом надо поддерживать не только иерархические, но и плоские структуры типа команд и рабочих групп. Также, хотелось совместимости с другими BPM-системами, где эта функциональность уже есть, например, Bizagi. Еще надо учесть, что сотрудники могут не только занимать несколько должностей, но и в разных организациях, что эти организации могут образовывать холдинг или группу компаний.

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

Имею ли я право?

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

Работает это как показано на рисунке:

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

  • Далее, система собирает все роли, которые сотрудник получает через назначения на должности (через них получаем подразделения и организации) и членство в командах/группах.

  • Естественно, роли из разных источников могут дублироваться — поэтому выполняется дедупликация.

  • На последнем этапе полученный список уникальных ролей, назначенных данному пользователю, сопоставляется с его текущими ролями — новые роли добавляются, отсутствующие удаляются.

Кстати, даже если у вас нет никаких процессов, и не используется BPM, управление правами через оргмодель ценно и само по себе. Это значительно упрощает администрирование системы.

В принципе, назначение прав доступа через оргмодель с использованием наследования (по департаменту, отделу, должности, группе) — это широко распространенная практика в корпоративных системах, использующих RBAC-подход. Например, в 1С, Bitrix24 и других.

На уровне монолитного приложения реализовать эту идею получилось относительно просто — теперь можно вычислять права каждого сотрудника из организационного контекста и посмотреть, откуда они пришли:

Более того: можно посмотреть, какие права были у него на любой момент времени в прошлом или даже в будущем — если вы только планируете изменения и они еще не вступили в силу.

Однако, где вы видели корпоративную архитектуру из одного монолита? Конечно же, у нас всегда есть несколько приложений, которые между собой взаимодействуют.

Аккаунтов много, а человек один

На первом этапе моя оргмодель была просто дополнительным модулем Jmix-приложения, жестко к нему привязанным; она позволяла назначать права и исполнителей в задачах на основе их положения в организации. И мен казалось, что это норм.

Когда долго занимаешься одним продуктом, начинаешь смотреть на мир только через его призму и перестаешь видеть поляну целиком. Я тоже попал в эту ловушку — не учел сразу, что оргмодель должна видеть разные системы, где у одних и тех же людей есть разные учетки.

Ценой был довольно глубокий рефакторинг — пришлось сделать дополнительный слой для представления систем-источников (source systems), чтобы связать сотрудника с его аккаунтами и правами в них.

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

Логика здесь такая:

  • Оргмодель получает из удаленной системы список пользователей и список ролей.

  • Администратор выполняет маппинг пользовательских аккаунтов на сотрудников и устанавливает связи элементов оргмодели с ролями

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

Если API системы-источника позволяет управлять пользователями и ролями, то вообще никаких изменений в нее вносить не требуется, все делается на стороне оргмодели. Для начала были сделаны интеграции с удаленной системой на том же Jmix и BPM-движком Camunda 7. Общий паттерн определен, дальше — дело техники.

— Да но почему здесь Keycloak? Это же другое!

Оргмодели Keycloak нужен как identity provider, чтобы не гадать, кто есть кто в разных системах: появляется один стабильный userId, один набор атрибутов и единый способ их получить (через токен), которому все доверяют. Но это пока в планах.

DSL для оргмодели

Логически с оргмоделью как бы все понятно — выбрать всех сотрудников отдела X и назначить им роль Y. Или Выбрать всех сотрудников, которые состоят в группе A и имеют скилл B. Или выбрать просто всех сотрудников организации O1. Или найти начальника департамента D3.

Но понятно это на словах. А когда надо резолвить программно, то получаются очень громоздкие вызовы. Если дать такое API разработчику, то спасибо он точно не скажет.

Что же делать? — Эврика! — Пусть будет специальный язык для резолвинга сотрудников из оргмодели. Тогда можно определять все эти выборки очень естественно и наглядно.

Например, все сотрудники организации Супер Сервис не включая дочерних организаций:

select:
  organization: SUPER_SERVICE
  includeSubOrganizations: false
sourceSystem: LOCAL

Или руководитель технического департамента той же Супер Сервис:

select:
  organization: SUPER_SERVICE
  unit: TECH_DIVISION
  leadershipRole: HEAD
sourceSystem: CAMUNDAselect:
  organization: SUPER_SERVICE
  unit: TECH_DIVISION
  leadershipRole: HEAD
sourceSystem: CAMUNDA

Или Java-разработчики со знанием Java — как это ни смешно. (На самом деле хотел еще добавить уровень скилла, но не успел — тогда бы это было актуально.)

select:
  organization: ACME
  position: JAVA_DEV
  skills:
    - JAVA
sourceSystem: LOCAL

И так далее. Такие правила легко передавать по API и резолвить на удаленной системе, они же будут потом использоваться в процессах с небольшими расширениями.

Оргмодель: что в итоге

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

Если что, это не строго по нотации, просто для общего представления, как система устроена.

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

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

Продолжение следует:

Часть 2. Процессы: чего до сих пор не хватало обычным BPM

Часть 3. Агенты выходят на работу

Подпишитесь на канал Agentic Enterprise — про жизнь агентов в кровавом энтерпрайзе