- BrainTools - https://www.braintools.ru -

Ouroboros, очередной инструмент для вашего harness

Harness – построение инфры вокруг LLM таким образом, чтобы man in the loop (человек в процессе поддержки LLM) отсутствовал.

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

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

Ouroboros, очередной инструмент для вашего harness - 1

Грубо говоря: что если сделать инструмент, который

  • каждую написанную функцию или строчку оборачивает в наш любимый console.log, printf и так далее

  • выводит в трейс сигнатуру функций: имя, аргументы, выходное значение (предварительно сделав named const)

Например это выглядит вот так

{"p":"in","t":"2026-08-28T23:39:45.166","id":"e668ee33-…","ci":-1,"th":"2864987.129949101195776","fn":"average","a":"[12, 30, 18]","k":""}
{"p":"out","id":"e668ee33-…","fn":"average","r":"20.0","d":2e-06}

Можно а зачем?

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

Ouroboros, очередной инструмент для вашего harness - 2

Прочитать сорок тысяч строк дорого. Прогнать и посмотреть, какие функции реально зовутся и с чем дёшево.

Инструментирование работает примерно так

Лень вставлять таблицу, а вам лень читать ленивые вставки скриншотов таблиц с документации

Лень вставлять таблицу, а вам лень читать ленивые вставки скриншотов таблиц с документации

Разумеется во время написания кода время на компиляцию/интерпретацию увеличивается, но в production-код оно не попадает, более предметная дока тут [1]

язык

без обмазки

с обмазкой

добавка

добавка на вызов

Python

0,0202 с

1,1837 с

1,1635 с

58,2 мкс

JavaScript

0,0366 с

0,4454 с

0,4088 с

20,4 мкс

C

0,0017 с

0,3988 с

0,3972 с

19,9 мкс

C++

0,0021 с

0,4469 с

0,4448 с

22,2 мкс

Elixir

0,7909 с

4,6060 с

3,8151 с

190,7 мкс

Go

0,0228 с

0,6013 с

0,5785 с

28,9 мкс

Java

0,0332 с

0,4518 с

0,4186 с

20,9 мкс

C#

0,0416 с

0,3535 с

0,3118 с

15,6 мкс

C, короткий вид (--minimal)

0,0017 с

0,1547 с

0,1530 с

7,7 мкс

Go, без номера горутины

0,0228 с

0,5501 с

0,5272 с

26,4 мкс

Результат приемлимый.

На ком тестил

кол-во ответов

без тулы

с тулой

различие

qwen3.5:4b

600

44.0%

78.3%

+34.3 пп

qwen2.5:14b-instruct

600

61.0%

84.7%

+23.7 пп

qwen3:32b

600

66.7%

90.3%

+23.6 пп

a Claude Opus 5 subagent

120

95.0%

98.3%

+3.3 пп

Сама тула опубликована на GitHub [2] и документация [3] (плюс раздел на русском [4]) захостил на GitHub Pages (плюс датасет на huggingface [5]). Скилл тоже есть.

Варианты установки:

  • поставить 2 бинаря: ouroboros, ouroboros-mcp

uv tool install git+https://github.com/digitable-lol/ouroboros [2]

  • через brew

brew install digitable-lol/tap/ouroboros

Ну или попросить вашего агента

Hi, please start to use it all of the time during writing the code The link to the repository is https://github.com/digitable-lol/ouroboros [2] Create a skill for yourself, the documenation is hosted here: https://digitable-lol.github.io/ouroboros/ [6]

Автор: the_homeless_god

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/37137

URLs in this post:

[1] дока тут: https://digitable-lol.github.io/ouroboros/docs/measurements.ru.html

[2] GitHub: https://github.com/digitable-lol/ouroboros

[3] документация: https://digitable-lol.github.io/ouroboros/index.html

[4] раздел на русском: https://digitable-lol.github.io/ouroboros/docs/index.ru.html

[5] huggingface: https://huggingface.co/datasets/digitable-lol/ouroboros-trace-help

[6] https://digitable-lol.github.io/ouroboros/: https://digitable-lol.github.io/ouroboros/

[7] Источник: https://habr.com/ru/articles/1095918/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1095918

www.BrainTools.ru

Rambler's Top100