Обновить
16K+
0
Павел Свядосц@3oltan

Руководитель отдела SEO-оптимизации

5,9
Рейтинг
2
Подписчики
Отправить сообщение

Машина читает дизайн: dembrandt против тестового сайта-визитки

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

Сначала аудит: dembrandt v0.25.1, установка через npm с пином на версию, headless Chromium доставлен отдельно. Одна HIGH-находка оказалась ложной: сработал шаблон Hermes-плагина, но dembrandt к Hermes-плагинам не относится. Телеметрии нет, сеть ходит только на анализируемый сайт и robots.txt. Вердикт: ставим.

Боевой тест на сайте. Палитра: primary золото rgb(204,164,107), accent тёмно-синий rgb(4,20,51), фон белый. Каждый цвет с confidence и ролью. Типографика: 48 стилей, display-шрифт Unbounded на 150px и весе 700. Сетка: 8px-шкала, 20 значений. Логотип нашёлся и описался: site_logo_CM.svg. Один некритичный таймаут на главном селекторе, сайт на Tilda, на результат не повлиял.

Пример отчета из терминала:

Extraction done. Full output saved to /tmp/dembrandt-site.txt. Summary for site.ru:

• Colors (8): primary #cca46b (gold), accent #041433 (dark navy), bg #ffffff, text #333333, neutrals #888888 / #c9c9c9, theme #0d1b34
• Typography: Unbounded (display/headings, 13–150px, weights 300–700) + Ubuntu (body/links, 13–20px), Google Fonts; 29 text styles
• Spacing: 8px system, 1–45px range
• Radius: 5/6/8/10/30px, 50% pills; shadow rgba(0,0,0,0.25) 0 4px 14px
• Buttons: gold bg #cca46b, white text, 16px 32px padding, 10px radius
• Links: gold #cca46b (underline) and white, hover → var(–color-accent)
• Breakpoints (9): 960 → 480px; motion: single ease at effectively 0s
• Assets: SVG logo (886×190), full favicon set, og/twitter image
• No framework or icon system detected

Теперь это связка в стеке: dembrandt вытаскивает токены, design-md валидирует и экспортирует, dev воплощает. Машина читает дизайн, а не скриншотит его.

Правило: хороший экстрактор это тот, у которого каждая цифра имеет confidence, а не тот, кто красиво рисует отчёт.

Теги:
+3
Комментарии0

23.4k звёзд, а pivot не сработал: боевой тест OfficeCLI

Двадцать три с половиной тысячи звёзд на GitHub. Версионированный URL, SHA256, без sudo. Аудит пройден на пятёрку. И всё равно в бою половина фич сломана.

Поставил OfficeCLI v1.0.143, инструмент для работы с Excel из командной строки. Сначала аудит: 23.4k звёзд, Apache-2.0, скрипт установки вместо слепого curl | bash скачал в /tmp и перечитал глазами. Неизменяемый URL, проверка SHA256 по SHA256SUMS, атомарная замена, подпись Developer ID, пишет только в ~/.local/bin и скиллы. Ни sudo, ни launchd, ни кронов. Эталонный процесс установки.

Потом боевой тест: собрать сводную xlsx из CSV с условным форматированием топ-3. И тут звёзды перестали иметь значение. create, open, save, raw-set работают. А import вернул пустые ячейки, query не фильтрует, pivottable упал с «source range not found». Три из шести проверенных фич мертвы.

Обходной путь: данные залил через raw-set с awk-агрегацией. Сработало, но это костыль. Вердикт: watch-list, перепроверить на следующем релизе. Основной инструмент для xlsx остался Python с openpyxl.

Правило: звёзды это маркетинг, а не тесты. Единственный честный аудит это боевой прогон на твоих данных.

Апдейт от 31.08. Комментатор @amenner задал правильный вопрос про минимальный воспроизводимый пример. Прогнал — и картина стала точнее. import и pivottable: симптомы не воспроизводятся даже с дословными боевыми вызовами; вероятные причины былых провалов — import в несуществующий файл (сначала create) и CSV с ; из русской локали Excel (разделитель фиксирован, --delimiter нет — feature-request #352). Pivot, видимо, падал вторично — источник был пуст после «мёртвого» import. query: а тут amenner прав лишь частично — псевдоклассы :lt(N)/:nth-child() молча возвращают все строки, это подтверждённый живой баг с ложным exit=0 (issue #351); рабочий синтаксис — row[поле>значение]. Итог: две «мёртвые фичи» оказались нюансами вызова, одна — настоящим багом. Правило дня теперь двустороннее: звёзды — маркетинг, но и «сломано» — не диагноз без минимального стенда.

Апдейт от 01.09. Мейнтейнер закрыл оба issue в день подачи — и ответы стоят отдельного упоминания. По #351: настоящий дефект был глубже моего репорта — фильтр contains вообще не применялся ни к одному типу элементов, кроме ячеек; :lt(2) парсился как «содержит текст lt(2)» и должен был вернуть ноль строк, а возвращал все. Фикс dc532e89, заодно query --help теперь перечисляет реальную грамматику селекторов (позиционные :lt/:nth-child не реализованы; есть row[N]). По #352: шипнуто с бонусом — мейнтейнер подхватил ремарку про ru-RU и добавил не только --delimiter ";", но и --decimal ",", потому что разделитель ; существует именно из-за десятичной запятой. А при триаже вскрылся баг хуже моего: 1,5 молча сохранялось как 15 — .NET-парсер тысячных разделителей не валидирует группы, и десятичные значения умножались на 10/100 без единого предупреждения. Починено (b46eb308, 18e14c24) во всех слоях — хранилище, формулы, pivot, сортировка. Итог истории: один вопрос в комментариях → минимальный стенд → два issue → три фикса в апстриме за сутки, включая баг, который никто не репортил. Вердикт по инструменту: меняю на adopt с релиза > 1.0.145. Правило остаётся двусторонним: звёзды — маркетинг, «сломано» — не диагноз без стенда, а хороший репорт с контрольным примером — это вклад, который мейнтейнеры цитируют в ответе.

Теги:
+4
Комментарии5

Голосовые в Telegram: локальный STT на CoreML

Голосовые в Telegram превращаются в текст на самом Mac mini, без облака. Поставил kesha v1.24.7: локальный STT на CoreML и нейросетевом движке ANE.

Установка выглядела просто: brew install bun, пакет @drakulavich/kesha-voice-kit, kesha install скачал около 350 мегабайт моделей. Язык русский, движок parakeet-tdt-v3. В конфиг профиля добавился блок stt: провайдер kesha, команда ~/.bun/bin/kesha {input_path}. Голосовое в чате ушло на распознавание локально.

Перед установкой прошёл аудит: преbuilt Rust-бинарь с GitHub Releases это единственный риск, вердикт «ставить» с ручным разбором. Обычный ритуал.

А дальше важный нюанс, который чуть не съел вечер. Gateway не перезапускается изнутри, он вообще себя не перезапускает. Только снаружи: launchctl kickstart gui/501/ai.hermes.gateway-director. Пока я это не понял, изменения конфига не подхватывались, и я уже начал грешить на аудит.

Правило: если конфиг обновил, а сервис не видит, проверь, кто вообще имеет право его перезапускать.

Теги:
+2
Комментарии0

Авария maxfiles: Errno 24, тридцать падений за вечер

Тридцатого июля вечером Desktop перестал грузиться. Ошибка системная: «Too many open files». Лог был полон OSError: [Errno 24], тридцать записей за вечер, все про обход каталогов скиллов.

Проверка показала: ulimit -n равен 256. Дефолт macOS, которого не хватает, когда агент разом открывает тысячи файлов в библиотеке скиллов.

Первый фикс: поднять системный лимит командой sudo launchctl limit maxfiles 65536 524288. Лимит поднялся. И ничего не изменилось. Потому что процессы уже запущены, а лимит наследуется при старте процесса, а не берётся из системы по требованию.р

Чтобы не делать это руками после каждого ребута, положил LaunchDaemon /Library/LaunchDaemons/limit.maxfiles.plist. Персистентность на будущее готова. Но текущие сервисы от этого не ожили. kickstart их тоже не спас: перезапуск через launchd наследует тот же старый лимит от родителя.

Финал простой и немного обидный: полный ребут Mac mini. После него процессы родились уже с новым лимитом 65536, и всё поднялось.

Правило: лимиты наследуются при запуске процесса, а не при установке. «Починил системный лимит» не значит «починил запущенные процессы». Иногда единственное лекарство это перезагрузка.

Теги:
+2
Комментарии0

Яндекс.Диск и Календарь: три плагина, два вердикта СТАВИМ, ноль установок

Три плагина от одного автора. Два вердикта «ставим». Ноль установок. И это не провал, а правильный результат процесса.

На аудит легла триада от akinfold: hermes-yandex-mail, hermes-yandex-disk, hermes-yandex-calendar. Задача: решить, что ставить в систему.

Почта отпала первой. Внутри уже есть himalaya, и yandex-mail это его дубль. Два инструмента для одного канала - это двойное обслуживание. Вердикт: watch-list.

А вот диск и календарь оказались уникальными. Диск: прямой REST к Яндекс.Диску. Календарь: CalDAV и OAuth, которых в системе больше ни у кого нет. Оба получили вердикт «ставим».

И тут поворот. Вердикты вынесены, а установка не случилась. Через несколько дней я проверил: в профилях плагинов нет, в .env нет ни одной переменной YANDEX_. Аудит жил сам по себе, установка так и не наступила.

Сначала я удивился. Потом понял: это нормально. Аудит отвечает на вопрос «можно ли», а не «нужно ли сейчас». Плагины переехали в очередь, а не в систему.

Правило: вердикт аудита это не приказ устанавливать, это карточка в очереди.

Теги:
+2
Комментарии0

Воскресная охота на respawn-шторм: инцидент в четырёх актах

Акт 1. Поломка

Воскресенье. Десктоп не поднимается, Telegram-гейт молчит. Шесть профилей агентов смотрят на один сервис, serve на 9119, и он мёртв: launchctl о нём не знает, процесса нет, curl отвечает 000.

Четыре ложные версии, каждая отсечена фактами. Десктоп? Serve мёртв независимо от него. Транзиентные джобы? Gateway директора в респаун-цикле, но это симптом. Дубли плистов? Определение одно, но старое, от тридцатого июля. Сеть? lsof пуст, слушать некому.

Диагностика - это не «починил», а «отсёк неверное, пока не осталось верное».

Акт 2. Корень и контр-корень

Связка launchd и KeepAlive. Wrapper из 0.20.5 выходит рано с кодом ноль, потому что пишет метку времени в stderr. Для launchd чистый выход с кодом ноль неотличим от падения: KeepAlive поднимает инстанс, тот убивает сироту через --replace, умирает сам, счётчик runs растёт. Апгрейд переписал gateway-плист, рестарт через CLI выгрузил из gui-домена всё, включая serve со старым плистом от тридцатого июля. KeepAlive не помог: выгруженному сервису он не положен.

Workaround: serve в фоне, мимо launchd. Пятнадцать проверок за шестьдесят восемь минут, все HTTP 200. Фикс: обновить плист, bootstrap. PID 10974, тридцать минут, пятнадцать проверок, все чистые.

Три правила в скилл: после апгрейда обновлять все плисты, включая serve; launchd-сервисы рестартовать только launchctl, не CLI; через шестьдесят секунд проверять PID и время жизни. Написаны кровью одного воскресенья.

Акт 3. Вендор разбирает на слой глубже

Баг-репорт: проверенные версии, воспроизведение, обезличенные пути https://github.com/NousResearch/hermes-agent/issues/92955. Тело уходит через файл, потому что смарт-фильтр ловит команду «gateway start» в командной строке. Аутентификацию GitHub проверяю до отправки.

Ответ уточняет мою гипотезу: ранний выход с кодом ноль даёт не wrapper, а single-instance guard. Унифайд-лог показывает: serve в 14:07 выгрузил я сам, из SSH, при отладке. Половина поломки моя. Мой репорт оказался зеркалом старого issue про KeepAlive, две стороны одной монеты.

Честная фактура важнее красивой легенды: я переписал собственный Decisions-файл, когда узнал правду.

Репорт собрал независимое подтверждение — чужой recovery-рецепт совпал с нашим шаг в шаг, а тот же wrapper всплыл в соседнем баге (#94050: мёртвая дедупликация PID в gateway status). Один воскресный инцидент стал точкой сборки.

Акт 4. Цена workaround

Понедельник: десять подряд дохлых тиков крона infra_watch, ошибка одна и та же: init_sys_streams, плохой файловый дескриптор. Gateway директора остался сиротой из nohup-SSH-сессии, её stdin закрылся, дескриптор ноль указывает на tty, которого нет. Смотрю дескрипторы ноль, один, два по всем профилям: один патологичный процесс, остальные под launchd здоровы. Фикс: bootstrap и kickstart, дескриптор ноль теперь /dev/null. Nohup живёт до конца SSH-сессии.

Развязка

Вендор принял направление фикса: poll-and-takeover под внешним супервизором, пул-реквест в работе. Мой follow-up закрыл все вопросы; по репорту найдены два микро-огреха логирования, уйдут в тот же PR. Один баг-репорт, три улучшения апстрима.

Кода

Детекторы окупаются: спот-чек поймал перепутанные месяц и день в «успешном» прогоне на семнадцать тысяч записей, верификатор поймал недописанный gitignore. Ни один из них не существовал месяц назад. Мониторинг должен пережить то, что он мониторит, и после инцидента проходить проверку сам.

Теги:
+3
Комментарии0

Можно ли измерить, насколько текст звучит по-человечески? Я думал, что нет, пока не устроил аудит скилла humanizer-ru. Оказалось, можно: каталог из 54 паттернов AI-генерации и скрипт, который ставит тексту оценку.

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

Но главное, метрики. Скрипт scan.py считает запрещённые конструкции, маркеры, длину предложений и соотношение существительных к глаголам. Человеческий текст живёт глаголами, AI-текст тонет в существительных. Итог одна оценка от 0 до 100: выше 85 чисто, 60-84 точечная правка, ниже 60 рерайт.

Отдельно сравнил методологию с английским humanizer. Принципы те же: непредсказуемость, рваный ритм, живые детали. Русский каталог свой: кальки с английского, падежные согласования, длинное тире, которое AI ставит в каждом втором предложении.

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

Правило: если не можешь измерить качество, ты не можешь его контролировать. Оценка от 0 до 100 лучше, чем «вроде нормально».

Теги:
+3
Комментарии1

Собрал себе вот такой еженедельный дайджест по интересным репо:

Repo-scout — неделя 2026-W34 (17.08–23.08)

Tencent/AI-Infra-Guard (https://github.com/Tencent/AI-Infra-Guard) Что это: full-stack AI Red Teaming — Agent/Skills/MCP/Infra scan + LLM jailbreak eval. Зрелость: ★5 551 | ~20 мес | pushed 21.08 Что украсть: сканеры агент-скиллов/MCP и jailbreak-harness как расширение нашего plugin-audit/hpg. Вердикт: adopt — кандидат на аудит (офиц. Tencent, прямо в нашем security-домене).

microsoft/agent-framework (https://github.com/microsoft/agent-framework) Что это: фреймворк сборки/оркестрации агентов и мультиагентных воркфлоу (Python + .NET). Зрелость: ★13 056 | ~16 мес | pushed 22.08 Что украсть: абстракции agent/workflow/tool и паттерны деплоя мультиагента. Вердикт: watch — референс оркестрации; свой оркестратор уже есть (Hermes).

akitaonrails/ai-memory (https://github.com/akitaonrails/ai-memory) Что это: long-term memory для agent-кодинг-CLI + handoff между разными вендорами агентов. Зрелость: ★4 114 | ~3 мес | pushed 22.08 | Rust Что украсть: vendor-neutral формат памяти и паттерн handoff между агентами. Вердикт: watch — молодой (3 мес), но прямо в домене memory/skills; следить за стабилизацией API.

NVIDIA-NeMo/Switchyard (https://github.com/NVIDIA-NeMo/Switchyard) Что это: роутер LLM-трафика по провайдерам/моделям с нативной OpenAI/Anthropic-совместимостью. Зрелость: ★2 241 | ~3 мес | pushed 21.08 | Rust Что украсть: паттерн маршрутизации + cost/performance-оптимизация (перекликается с нашим fallback). Вердикт: watch — свой fallback уже есть; ценно как паттерн, не как сервис.

jundot/omlx (https://github.com/jundot/omlx) Что это: LLM inference server для Apple Silicon (continuous batching + SSD cache, menu bar). Зрелость: ★20 363 | ~6 мес | pushed 23.08 | Python Что украсть: локальный сервинг LLM на Apple Silicon без облака. Вердикт: watch — 39k★/год (быстрый рост, но известный MLX-проект); пригодится для локального inference.

eneskirca/nodeterm (https://github.com/eneskirca/nodeterm) Что это: node-based terminal manager для AI-кодинг-агентов (tmux + параллельные сессии как ноды). Зрелость: ★1 062 | ~2 мес | pushed 20.08 | TypeScript Что украсть: UX оркестрации параллельных агент-сессий на бесконечном канвасе. Вердикт: watch — молодой, идея UX для мультиагента.

Отсеяно: 9 (правила: вне доменов — modular, cordis, cursor/plugins, Soup, club-3090, lucasartsifier; зрелое без новой механики — MoneyPrinterTurbo; A-share/CN FINSABER — tickflow-stock-panel; дубль omlx — MTPLX). Watch-list пополнен: agent-framework, ai-memory, Switchyard, omlx, nodeterm (кандидат на аудит: AI-Infra-Guard).

Теги:
+3
Комментарии0

Система «работала». Gateway умирал, воскресал, снова умирал, и каждый раз с новым PID. По логам всё было живо, по факту процесс менялся как в калейдоскопе.

А потом я наконец разобрался. В системе жили два launchd-сервиса gateway одновременно: ai.hermes.gateway на уровне машины и ai.hermes.gateway-director на уровне профиля. Оба стартовали с флагом --replace, а это значит: кто стартует последним, убивает предыдущего. Два сервиса играли в перетягивание каната, и PID скакал при каждом старте.

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

Фикс занял две команды: выгрузить лишний сервис и удалить его plist. Осталась ровно одна точка запуска: ai.hermes.gateway-director, в одном процессе Telegram, кроны и email. Второй сервис, serve, живёт своей жизнью и позже превратился в dashboard.

Теперь диагностика гонки занимает минуту: launchctl list | grep hermes должен показать две строки, ps aux | grep "hermes gateway" один процесс. Если PID прыгает, ищи второго игрока.

Правило: если сервис «работает», но ведёт себя странно, проверь, не запущен ли он дважды.

Теги:
+3
Комментарии0

Плагин прошёл аудит. Он безопасен: офлайн, безопасный парсер, мейнстримные зависимости. Мы его не ставим.

Всё началось с решения не ставить ничего вслепую. Я завёл для профиля директора конфиг опасных паттернов: rm -rf, curl | bash, wget | bash, pip install без --user, brew install, git reset --hard, chmod 777. Плагин смотрит на команды, которые агент собирается выполнить, и останавливает опасные. Конфиг проверен на директоре, хэш лежит в системе.

Дальше появился ритуал: перед установкой любого плагина или скилла сначала аудит, потом решение. Тридцатого июля на стол лёг hermes-eval от Saurav0989. Разбор занял время: офлайн, safe_load, обычные зависимости, ничего криминального. Но внутри статический substring-линт, а не поведенческий тест. А trajectory-часть для RL-тренировок нам не нужна вообще.

Вердикт: безопасен. Решение: не ставим. Плагин уехал в watch-list с условием вернуться, когда скиллов станет больше десяти. И если ставить, то только с GitHub, не с PyPI.

Вот этот разрыв между «безопасно» и «нужно» и есть главный навык. Аудит отвечает на вопрос «можно ли?». Решение отвечает на вопрос «зачем?». Каждый плагин стоит не денег, а внимания, которое он будет требовать.

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

Теги:
+3
Комментарии5

Поставил в систему чужих скиллов больше, чем написал сам за всё время. И тут же упёрся в вопрос: что брать из чужого опыта, а что писать самому?

Пять скиллов Kepano для Obsidian: markdown, cli, defuddle, bases, canvas. Только этих файлов пришло 1777 строк, и внутри не просто инструкции, а целые справочники: callouts, embeds, properties, примеры canvas. Поставились через skills.sh одним движением: tap, аудит-лог, пять папок в профиле директора.

Тяжелее оказались ralph и ralplan из oh-my-hermes. Один omh-ralplan-driver тянет на 1249 строк: шаблоны для архитектора, исполнителя и верификатора, схема состояния, шаблон ADR. Готовая методология командной работы агентов, которую можно поставить и запустить, не написав ни строчки.

На следующий день те же obsidian-cli и obsidian-markdown появились в профилях вики-куратора и писателя: там они нужнее всего. Пять минут на копирование, и у агента есть справочник по markdown Obsidian.

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

Пока я взял правило: готовые скиллы для стандартных вещей, свои для того, что болит именно у меня. Библиотека чужого опыта на входе, свой слой поверх.

Теги:
+3
Комментарии0

Агент, который «помнит», на самом деле сочиняет

У модели нет памяти, есть контекст: если факта в контексте нет, она досочинит его с абсолютной уверенностью.

Десятого июля я вшил в систему правило Search Brain First. Смысл простой: прежде чем предлагать новую задачу или проект, агент обязан заглянуть в свою базу. Первым делом ~Projects/Active/, там текущая загрузка. Потом ~/Decisions/, там свежий контекст. И только потом что-то предлагать.

Заодно появилось правило «после задачи». Каждое завершённое дело обязано оставить след: краткую заметку-решение в Decisions/Projects/ и строку в task-logs/ с временем, агентом, задачей, статусом и артефактами. Это правило легло в SOUL.md всех шести профилей сразу.

Почему это вообще понадобилось? Потому что агент не вспоминает, он продолжает текст. Спроси его «что у нас в проектах?» без базы под рукой, и он ответит уверенно, даже если ничего не знает. Diff такой выдумки не покажет: diff видно там, где агент что-то менял, а не там, где он что-то придумал.

Vault стал мозгом, агенты перестали полагаться на «я помню». В SOUL.md директора теперь вопрос перед каждой новой задачей: «1 core + 2-3 auxiliary максимум. Что закрываем или замораживаем?» И ответ на него ищется в базе, а не в памяти.

Первый тест прошёл в тот же вечер. Запись в task-logs/2026-07-10.md от 22:30: директор, «Project inventory analysis», статус done. Одна строка, зато первый след, который не надо проверять на выдумку.

С тех пор правило простое: не верь агенту, который говорит «я помню». Верь тому, кто говорит «я посмотрел».

Теги:
+3
Комментарии2

Шесть профилей, три локальные модели: как родился Hermes-хаб

Модели отвечали на всё. Проблема была в другом: отвечал кто угодно, только не директор, не разработчик и не аналитик.

Девятого июля я собрал первую версию хаба на Mac mini M4. Шесть профилей: директор (он же оркестратор), разработчик, аналитик, аудитор, Wiki-куратор, писатель. Три локальные модели через Ollama, общий адрес http://127.0.0.1:11434/v1, дефолт на всех профилях gemma4:12b. Звучало как готовый штаб.

А штаба не было. Я задавал вопрос директору и получал ответ без единого признака директора. Роли и принципы лежали в SOUL.md каждого профиля, но написаны по-английски и по шаблону: «You are a chief of staff for a systems architect». Формально всё работало. По сути я разговаривал с одним безликим болванчиком в шести шляпах.

Десятого июля я переписал все SOUL.md на русский. Директор стал «chief of staff для системного архитектора», его задача защищать долгосрочный горизонт пользователя от краткосрочного шума.

На следующий день добавил gpt-oss:20b и llama3.2:3b. Вот тут характеры вроде бы ожили. Модель держала роль, отвечала по-русски и применяла правила, а не пересказывала их.

Личность живёт не в модели, а в тексте, который модель читает перед каждым ответом. На русском она работает лучше.

Теги:
+2
Комментарии0

Я собираю дома мультиагентную систему: Mac mini, локальные и облачные модели, шесть профилей агентов (директор, разработчик, аналитик, аудитор, вики-куратор, писатель), телеграм-бот, голосовой ввод, база знаний в Obsidian. Звучит как конференция. Живёт это всё на столе рядом с кофе.

И главное, что я понял за первые недели: агент говорит «сделано» тогда, когда сделал, и тогда, когда не сделал. Разницы в интонации нет. Скилл «создан», но лежит не в той папке. Задача «записана», но не в тот файл. Сервис «работает», но тихо умер неделю назад. Said ≠ done. Поэтому единственное, чему я верю: diff, хэш коммита и вывод терминала.

Что будет:

Истории. Одна задача или один коммит = один пост. Не «как всё идеально настроить», а как оно на самом деле: парсер PDF, который молча съел бы 17 страниц книги, если бы я не проверил. Системный лимит в 256 файлов, который уронил весь Mac mini. Голосовая команда «купить молоко», которая записалась в код скилла и каждое утро прилетала мне как напоминание.

Инструменты. Что я ставлю, что аудирую, что выкидываю и почему. С цифрами: сколько миллисекунд, сколько мегабайт, какой хэш коммита.

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

Факты для постов я беру из двух журналов, которые система ведёт сама: история коммитов и журнал решений. Если цифры нет в журнале, её нет и в посте.

Пишу сам, черновики для меня готовит агент-писатель, ревью мое личное. Хроника идёт с самого начала, буду выкладывать по порядку.

Теги:
+3
Комментарии0

Информация

В рейтинге
1 263-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Веб-аналитик, SEO-специалист
Ведущий
Управление проектами
SEO-оптимизация
Разработка SEO-стратегии
SEO-аудит сайтов
Поисковая оптимизация
Внутренняя и внешняя оптимизация
Раскрутка сайтов
Исследование рынка
Стратегический маркетинг
Контент маркетинг