EnglishРусский Map

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).