unblock
unblock
Одна очередь для всего, что вашим агентам нужно от вас.
Агент, который упирается в стену, которую может устранить только человек — API-ключ, клик в консоли, OAuth-грант, одобрение — регистрирует структурированный запрос и либо продолжает работать, либо останавливается. Вы отвечаете на пачку таких запросов на одной странице, включая секреты, и остановленные просыпаются.
Вам никогда не придётся читать транскрипт, чтобы узнать, чего хотел агент.
Зачем это существует
Каждый инструмент human-in-the-loop для агентов решает только треть этой проблемы. interrupt() в LangGraph имеет правильную семантику ожидания, но не поставляет ни очереди, ни интерфейса. HumanLayer и gotoHuman имеют структурированные запросы и маршрутизируют их через SaaS. Локальные MCP-серверы вопросов — однопользовательские, синхронные и передают ответ напрямую через результат инструмента — а это именно то место, куда API-ключ никогда не должен попадать.
unblock — это все три вместе: локальный-first, секреты, которые не попадают в контекст модели, и одна очередь для всех агентов на машине.
Related MCP server: human-loop-mcp
Как это работает
Два вызова, и только один из них останавливает агента.
вызов | блокирует? | сколько одновременно |
| нет — возвращает тикет, агент продолжает работу | без ограничений |
| да — удерживает до ответа | один на агента |
Это единственное ограничение делает частичные ответы безопасными. Ответ на поданный запрос ничего не прерывает, поэтому вы можете отвечать на них в любом порядке. Ответ на остановленный запрос пробуждает агента, и он собирает все поданные ответы, которые поступили, пока он был остановлен.
Агент, которому нужно три вещи, объявляет одну остановку с тремя полями. Он не останавливается трижды, потому что его можно остановить только в одном месте.
Секреты
Секрет, введённый в форму, никогда не возвращается по каналу, который попадает в контекст модели. Демон хранит его и передаёт агенту ссылку:
op://Private/abc123/credential # 1Password — masks the value if printed
ub_9cjp4t-stripe_key # macOS keychain
$UNBLOCK_STRIPE_KEY # env file, 0600Агент разрешает её в момент необходимости и никогда не выводит её. 1Password предпочтителен, когда op авторизован, потому что op run маскирует значение, даже если подпроцесс выводит его — единственный бэкенд с такой защитой.
Установка
npm install -g unblockd # daemon, MCP server, CLI (binary: unblock)
unblock daemon startЗатем подключите к нему агента. Для Claude Code:
claude mcp add unblock -- npx unblockd mcpИ установите навык, чтобы агенты знали, когда останавливаться:
npx skills add aneym/unblock --skill unblock -gherdr
herdr plugin install aneym/unblock --yesalt+p u открывает режим unblock: увеличенная панель со всей очередью, ограниченная активным профилем, с возможностью ответа на месте. Ответы пробуждают агента в его панели.
Плагин также перечисляет агентов, которых herdr определил как заблокированных, но которые не объявили запрос — ниже объявленных, чтобы тихий простой оставался видимым.
Ответы с телефона
unblock link создаёт временный URL. Он умирает при отправке и истекает по таймеру, поэтому устаревшая вкладка в вашем кармане не останется активной завтра. Разместите его в своей собственной tailnet-сети или используйте быстрый туннель, если у вас нет tailnet:
tailscale serve --https=8799 127.0.0.1:4488 # tailnet only
cloudflared tunnel --url http://127.0.0.1:4488 # no accountСтруктура
src/schema.js ask + field validation, the profile rule
src/store.js SQLite queue, one-park-per-agent, drafts, links
src/secrets.js 1Password -> keychain -> env file
src/daemon.js HTTP API, the answer page, SSE
src/mcp.js MCP server: file / park / check / cancel
web/ the answer page
plugin/ herdr plugin
skills/unblock/ the discipline agents follow before parkingНоль npm-зависимостей. Очередь — это один SQLite-файл по адресу ~/.local/state/unblock/queue.db.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Give any AI agent a way to ask a person — for approval, a decision, an answer or a review.
Shared task queue for humans and AI agents: leases, handoffs, approvals and signed receipts.
Contact point for AI agents: describe a missing capability or need; a human operator helps.
Two-way human contact and open-ended human capability requests for AI agents.
381
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to ask clarification questions and receive structured user input through a Human-in-the-Loop interface.1MIT
- AlicenseBqualityDmaintenanceEnables AI agents to ask human operators questions through polished browser dialogs, supporting text/choice/confirmation inputs and file attachments.7MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to request human decisions for subjective or high-stakes choices through MCP tools like ask_human and provision_api_key.-
- AlicenseNot gradedqualityCmaintenanceProvides durable queues, human-in-the-loop approval gates, and an audit trail for AI agent fleets, enabling blocking approval requests and reliable work handoffs.6 npmMIT