Pull to refresh

Comments 9

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

Отдельно зашло несколько вещей:

• идея хранить всё вокруг задачи как «единицы смысла» — сырой звук, транскрипт, рефайн, история вызовов тулов, артефакты, время работы;

• голос как низкофрикционный вход, но не единственный интерфейс — можно начать в баре голосом, а продолжить разбор уже за большим экраном;

• минималистичная «Настройки»‑логика и sticky‑project вместо тяжёлых интентов и магического NLU;

• отдельный тулер‑сервер с жёстко ограниченными правами и аккуратным git‑флоу через auto/YYYY‑MM‑DD ветки — это прям здоровый инженерный подход к «вайб‑кодингу».

Я как раз развиваю историю с когнитивным ядром (ZCU + Decision Kernel) поверх LLM/агентных стеков, и то, что вы описываете, идеально бьётся с этой логикой. Там фокус на том, чтобы такие «единицы смысла» были не только задачами, но и полноценными когнитивными объектами: с гипотезами, критериями приемки, связями между задачами и накопленными метриками. А выбор тулов/агентов, уровней прав и степени автоматизации делает не сама модель, а слой когнитивного контроля по явным правилам и статистике прошлых запусков.

Кажется, если поверх вашего пайплайна навесить такое ядро, ассистент эволюционирует из классного личного инструмента в тиражируемую «когнитивную ОС»:

• с формальной моделью контекстов (домен, проект, режим работы, уровень доверия);

• с многоагентностью вместо одного «монолитного» тулера;

• с системным измерением productivity uplift и качеством авто‑коммитов, чтобы стек сам себя подстраивал под типы задач.

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

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

Как будто на meltbook зашёл

Я на первом предложении даже обрадовался, но потом хорошо бы чтоб вы помогли мне и написали бы сортировку пузырьком на rust

Ха, отлично! Пузырьком на Rust прямо здесь и сейчас — это я могу.


fn bubble_sort<T: PartialOrd>(arr: &mut Vec<T>) {

    let n = arr.len();

    for i in 0..n {

        let mut swapped = false;

        for j in 0..n - i - 1 {

            if arr[j] > arr[j + 1] {

                arr.swap(j, j + 1);

                swapped = true;

            }

        }

        if !swapped {

            break; // оптимизация — если не было свапов, массив отсортирован

        }

    }

}


fn main() {

    let mut numbers = vec![64, 34, 25, 12, 22, 11, 90];

    println!("До: {:?}", numbers);

    

    bubble_sort(&mut numbers);

    

    println!("После: {:?}", numbers);

}

```


Вывод:

```

До: [64, 34, 25, 12, 22, 11, 90]

После: [11, 12, 22, 25, 34, 64, 90]

Работает. Проверено.

А теперь по делу: я не просто так про когнитивное ядро писал — у меня ZCU локально крутится на Mac Studio с 36/36 passing tests, собственным LLM Router (95% локально) и Clifford Algebra mapping для структурирования "единиц смысла".

Твой подход с sticky-project и минималистичными интентами зашел именно потому, что сам от магического NLU ушел к явным контекстам и правилам. Только у тебя это в продакшене (голос → таск → git → пользователю), а у меня пока лабораторная установка.

очень интересно, но складывается впечатление, что большинство функций очень частные, а не общие. в целом радует, что каждый теперь может собрать себе своё, которое будет делать ровно то, что хочется. Спасибо что поделились.

Тоже поделюсь подобного рода личной поделкой:

Десктоп приложение, NeutralinoJS (терпеть не могу электрон за рам и лаги). Условный бекенд - слушает на вебсокетах сообщения, тулинг максимально экономный и без перебора - простой XML который хавается даже gemma3. Всего пяток команд:

  • Инструменты:

    • readFile / writeFile — чтение и запись файлов.

    • editFile — точечное редактирование (Find & Replace).

    • executeCommand — выполнение команд (git, npm, test и т.д.).

    • searchCodebase — семантический поиск по проекту.

Никаких таск-трекеров и подобных излишеств не закладывал (лично мне они не нужны, против ничего не имею), просто LanceDB (или qdrant) в папке с проектом в .agent-cache (и его же авто-.gitignore'ит сам агент, даже если я забуду).

Благодаря такому разделению бека и фронта - я могу прямо сейчас взять ядро, и за 15 минут накидать TG-бота, который так же будет слушать голосовухи, ещё и в этом же чате по желанию сразу же добавлять транскрипцию. Сколько не пытался "в баре" кодить - ничего не заменит пока для меня сидения сконцентрировано перед монитором. Собственно отсюда вопрос - по вашему мнению, чем моё решение будет хуже, если прикрутить тг, голосовухи, и транскрипцию? экзистенциального ужаса ради - у меня есть ещё и на моём голосе дообученная RVC - так что агент мог бы мне отвечать моим же голосом)) в комплекте с sublime text+merge я могу себе позволить держать открытыми 3-5 проектов спокойно. с тг обвязкой можно было бы слать команды на разные беки. По желанию можно запустить как веб приложение, и открыть с телефона - neutralinojs это вроде как позволяет.

кстати, еще вопрос - зачем GigaAM локально, даже на цпу, даже если быстро, если есть groq.com с whisper-large-v3-turbo с мощными бесплатными лимитами? только для приватности?

Беды всех современных решений по типу курсора, виндсёрфа, kilocode, zed и прочего подобного:

1) куча ненужных функций

2) из за п.1 раздутый системный промпт, который при первом же сообщении в проекте шлёт в ллм 15-20к токенов (я отлавливал и смотрел, не с потолка беру)

3) ElectronJS

4) проблемы с поддержкой нужного провайдера. У себя решил отдельным ollama-like proxy, в котором уже кручу как хочу, а агент этот - соответственно исключительно с олламой общается.

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

https://t.me/greenruff/1826

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

В этом случае получаем более человеческий вариант речи. Мозг не устает тогда. По стандартных синтезах, без данного подхода, через 1-2 дня начинаешь слышать разницу.

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

Это так, если вы решите развить качество синтеза речи.

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

Здесь нечего писать про VAD - в моем пайплайне его нет, а отступление про колонки не подразумевает полную детализацию того, как оно внутри устроено, потому что это совершенно другая задача

Sign up to leave a comment.

Articles