beads
- title
- beads
- type
- toolbox
- summary
- CLI-трекер задач, предоставляющий AI-агентам граф зависимостей на базе версионируемой БД Dolt
- tags
- go, ai-agents, issue-tracker, memory, dolt, cli
- language
- Go
- license
- MIT
- created
- 2026-05-06
- updated
- 2026-05-06
- lang
- ru
- translation_of
- beads
- source_updated
- 2026-05-06
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
CLI-трекер задач (bd), дающий AI-агентам персистентный структурированный граф задач вместо ведения планов в markdown-списках TODO. Проект Steve Yegge - в качестве хранилища используется Dolt, поэтому база данных версионируется, поддерживает слияние на уровне ячеек и нативное ветвление. Благодаря этому многоагентные и многоветочные рабочие процессы обходятся без конфликтов слияния. Идентификаторы на основе хешей (bd-a1b2), связи зависимостей, сжатие закрытых задач через "угасание памяти" (memory decay) и команда bd prime, внедряющая контекст рабочего процесса и сохранённые воспоминания в системный промпт агента.
Что заменяет
Обычное состояние AI-агента при выполнении длинной задачи - план в markdown, который агент перечитывает и переписывает на каждом шаге. Beads заменяет его графом: у задач есть идентификаторы, зависимости (blocks, related, supersedes, duplicates, replies_to, parent-child), приоритеты и журнал изменений. Команда bd ready возвращает набор задач без открытых блокировок - агенту не нужно решать, что делать дальше, решение принимает граф. Команда bd update <id> --claim атомарна, поэтому два агента на двух разных ветках не могут занять одну и ту же задачу.
Как это устроено технически
В качестве хранилища выступает Dolt - SQL-база данных, которая одновременно является версионируемой файловой системой в стиле Git. Есть два режима:
- Встроенный (Embedded) (по умолчанию): Dolt работает внутри процесса, данные лежат в
.beads/embeddeddolt/, запись в один поток с файловой блокировкой. Именно это настраиваетbd init. - Серверный (Server): внешний
dolt sql-serverпо TCP (порт 3307 по умолчанию) или через сокет Unix domain. Поддерживает несколько параллельных писателей. Полезно в изолированных окружениях агентов (например, Claude Code), где об ограничениях доступа файловой системы рассуждать проще, чем о правилах фаервола - именно ради этого и существует флаг--server-socket.
Слияние на уровне ячеек - ключевой элемент архитектуры. Если два агента на разных ветках редактируют разные поля одной и той же задачи, слияние пройдёт без конфликтов; в обычном текстовом списке TODO такой же сценарий приведёт к конфликтам на каждой изменённой строке. Идентификаторы на основе хешей (bd-a1b2) исключают коллизии вида "оба агента создали задачу #42", неизбежные при последовательной нумерации.
Beads умеет работать с Git, но не требует его наличия. Команда BEADS_DIR=/path/.beads bd init --stealth работает вообще без каталога .git/, что позволяет использовать инструмент с Sapling, Jujutsu, Piper или в CI/CD без побочных эффектов на уровне репозитория.
Механизм "угасания памяти" (memory decay) представляет собой проход компактизации: старые закрытые задачи сворачиваются в краткую форму, чтобы журнал изменений не раздувал контекстное окно. Это отличается от угасания по кривой Эббингауза в hippo-memory / stash - beads просто делает суммаризацию при закрытии, без периода полураспада и подкрепления при чтении, - но цель та же: держать в контексте нужный срез, а остальное приглушать.
bd prime служит точкой интеграции: агенты вызывают эту команду в начале каждой сессии и получают актуальные правила рабочего процесса, а также долговременные воспоминания, сохранённые через bd remember "инсайт". Команды bd setup claude / bd setup codex / bd setup factory / bd setup mux / bd setup cursor генерируют подходящий AGENTS.md или хуки/настройки под конкретную среду, чтобы агент вызывал bd ready, а не изобретал планы в markdown.
Базовое использование
brew install beads
cd your-project
bd init # creates .beads/ + AGENTS.md
bd setup claude # installs hooks for Claude Code
bd create "Fix auth bug" -p 1 -t bug
bd dep add bd-a1b2 bd-c3d4 # bd-a1b2 blocks bd-c3d4
bd ready --json # what can be worked on now
bd update bd-a1b2 --claim # atomic claim
bd show bd-a1b2
bd close bd-a1b2 "Fixed in PR #123"
bd remember "deploy script lives in scripts/deploy.sh, takes ~3 min"
bd prime # injects context + memories into agent
Иерархические идентификаторы эпиков: bd-a3f8 (эпик) / bd-a3f8.1 (задача) / bd-a3f8.1.1 (подзадача).
Разделение контрибьюторов и мейнтейнеров: bd init --contributor на форке направляет задачи планирования в отдельный репозиторий (по умолчанию ~/.beads-planning), чтобы они не попадали в PR. Мейнтейнеры с доступом по SSH или авторизованным HTTPS определяются автоматически.
Ограничения
- Только один писатель во встроенном режиме - для параллельных агентов на одной машине требуется серверный режим.
- Dolt - единственный бэкенд, то есть бинарник несёт накладные расходы Dolt, а синхронизация через
bd dolt push/bd dolt pullнаследует его операционную модель. - Автозапуск серверного режима не поддерживается при использовании сокета Unix; запускать
dolt sql-serverнужно вручную. - Антивирусы на Windows иногда выдают ложные срабатывания на бинарный файл; сверяйте контрольные суммы релизов.
Связанные страницы
- agent-memory-decay - концепция периода полураспада; компактизация в beads - это смежный, но другой подход на той же оси.
- stash / hippo-memory - инструменты долговременной памяти агентов; дополняют beads, а не заменяют его (beads структурирует задачи, они - память).
- forge - абстракция над Git-forge от Nesbitt; находится на том же уровне (CLI для агентов), но предназначена для операций с репозиториями, PR и задачами на GitHub/GitLab/Gitea/Forgejo/Bitbucket. Beads - это локальный граф задач, forge - мост к удалённому сервису.
- kata - ближайший прямой аналог; та же цель (структурированный граф задач для агентов вместо markdown), но противоположная философия хранения. Beads коммитит базу Dolt прямо в репозиторий для слияния веток с задачами; kata держит SQLite снаружи репозитория, не оставляя следов.
Репозиторий
github.com/gastownhall/beads - Go, MIT, 23.2k звёзд, v1.0.3, 89 релизов. Распространяется через Homebrew, npm (@beads/bd) и PyPI (beads-mcp).