Поручите работу агенту
01Каждая страница этого руководства, которая описывает задачу, начинается с простой просьбы, которую вы печатаете своему агенту. Эта страница объясняет, что эти просьбы предполагают, как агент доказывает, что работа сделана, и что происходит, когда vibe возвращает задание агенту, вместо того чтобы выполнить его самому.
Просьбы на этих страницах
02Страница задачи открывается блоком, который можно скопировать любому агенту с навыком vibevm: он называет предмет, формулирует результат и не упоминает секретов. Под ним нужно перечисляет, что у агента должно быть (навык, доступ к сети, токен в окружении), результат говорит, что вы увидите, когда всё получилось, а строки assert — команды, которые после этого должны проходить. Смысл именно в этих строках: ответ агента нельзя проверить по формулировке, а код выхода команды — можно. Запустите их сами или попросите агента запустить их и показать вам результаты.
03 Prompt first. Any action in VibeVM is done by an agent or by hand, and the agent is the main road. A scenario page opens with apromptblock: the plain request in the user's voice, self-contained (coordinates, paths and registry named, never implied), one prompt for one outcome, free of secrets, neutral to the agent (it works for any agent with thevibevmskill), at most sixty words; beside itneeds(what the agent must have) andoutcome(what the person sees when it worked), and at least oneassert— a shell command that must exit zero after the agent's work, because a prompt cannot be checked by its output the way a shell example can. A prompt without an assert on a scenario page is a style-linter error; an illustrative prompt on an explanation page is markedassert="none".vibe doc check --promptsruns every prompt through the configured agent runner ([doc.prompts] runner) in a clean temporary directory with the fixture and then runs the asserts; it is not part of the panel — it runs in the prose phase before acceptance, as a sample in the monthly loop, and in full at reconciliation. The skillvibevm-docstakes a page'spromptas the task when the user asks for what the page describes.
04Просьба, в которой есть необратимый шаг, публикация или удаление, говорит, что перед этим шагом агент должен спросить подтверждения. Сохраняйте эту строку, когда приспосабливаете просьбу под себя.
Как vibe узнаёт, что его вызывает агент
05vibe ведёт себя одинаково, печатает ли команду человек или агент, с одним уточнением. Агент представляется флагом --invoked-by <name> или переменной окружения VIBE_INVOKED_BY. Каждый машинный отчёт после этого несёт это имя, так что в журналах видно, кто что сделал. Установленный навык велит агенту передавать его. В скрипте --unattended отвечает на все подтверждения и отказывается открывать интерактивные мастера.
06 Decision. Mode is not a global flag the user sets; it is inferred per operation from how vibevm was reached and what backend is available.
Два пути от агента к vibe
07Агент может запускать vibe как команду, по процессу на вызов: так естественно задать быстрый вопрос или сделать широкий обход. Или он может говорить с vibe mcp serve, постоянным сервером, который регистрирует vibe mcp install: сервер отвечает на вопросы о пакетах проекта и выполняет те же операции, не порождая оболочку на каждый вызов. Операция определена один раз; какой дверью пользоваться, выбирает агент, а навык учит его эвристике.
08
Decision. A reasoning/agentic operation is defined once, as a
transport-agnostic core (the Intent-producing function over a project
context), and exposed by two thin adapters:
Когда vibe возвращает задание
09Внутри vibe нет модели. Когда операции нужно рассуждение, например объяснить проект прозой, vibe за него не берётся: он составляет инструкцию и оставляет её в почтовом ящике эстафеты проекта, .vibe/agentic/command.md. Агент затем выполняет vibe command: команда печатает инструкцию и очищает ящик, а агент выполняет её собственной моделью. Автоматической записи назад нет: если результат должен дойти до vibe, агент выполняет команду, которая его записывает.
10 Decision. When a reasoning operation runs under the relay backend, it does not act. It writes anIntent— a markdown prompt with light frontmatter (id, source command, created-at, status) — to a single-slot mailbox, the project-local.vibe/agentic/command.md(§3), and returns a pointer telling the caller to drain it.
11
MVP carries no write-back (req r4): the relay is fire-and-forget.
12 The consumer seam is one command,vibe command: it prints the pendingIntentto stdout and clears the slot (consume-on-read; the spent intent is archived to.vibe/agentic/command.done.md).
13 Decision. The firstvibe agenticoperation,explain, exercises the whole relay with zero real risk. Run under an agent, it parks anIntentto.vibe/agentic/command.mdof roughly:
16То же рукопожатие управляет шагами сборки, которые проект объявляет работой агента: когда vibe работает под агентом, такой шаг откладывается как задача для агента, и та же команда продолжает работу, как только объявленные результаты появились. Под человеком за терминалом vibe может вместо этого вызвать настроенного провайдера модели и платит за него только тогда, когда шаг действительно выполняется.
17 Inagent_mode = "agent"(detected via env — the CLAUDECODE/VIBE_AGENT genre — or forced by--agent-mode), vibe does NOT call an LLM. It parks the work and hands it to the hosting agent: for each agent execution it writes a task file under.vibe/agentic/outbox/<run>/<execution>.md— the resolved prompt, the envelope's prose projection, and the output contract (paths + acceptance) — then prints a fencedvibe-agent-tasksblock naming the run id and every task file, and exits the phase with engine statusdelegated(the handler reply vocabulary remainsok|fail|skip; chain pauses and nothing downstream runs). The hosting agent performs the tasks, writes the outputs, and re-invokes the same phase: vibe finds the outputs, validates them against the contract, marks satisfied executions done and continues — exact-run resumability, no special resume verb. The parking place and relay posture are PROP-018's agentic-relay genre extended from one command to a phase's worth of tasks. An MCP surface (lifecycle_run/lifecycle_tasks) is a second adapter over the same state/outbox, not a second mechanism and not an autonomous development loop (§4.6).
Особые случаи и правила
18vibe command с пустым ящиком печатает, что ничего не ждёт; вызывать её безопасно в любой момент.
19
Re-running with an empty slot prints "no
pending command" and exits 0.
20Запущенная без агента вокруг и без встроенного движка, операция, которой нужно рассуждение, громко падает и просит запустить её под агентом; операция, которой рассуждение не нужно, работает как обычно.
21 reached standalone with no engine (today) → a reasoning operation fails loud with "this needs an inference backend; run me under an agent, or wait for the built-in engine," and a non-reasoning operation runs normally.
22У каждой подсистемы vibe есть полный алгоритмический режим; модель только улучшает результат, и каждое такое улучшение выключено, пока оператор его не включит.
23 Every core VibeVM subsystem retains a complete algorithmic mode. An LLM may improve quality when the operator explicitly enables that feature; credentials, endpoint presence, provider configuration or construction never activate a feature. VibeVM remains useful with no provider, no API access and no agent host.
24Агент, который читает это руководство по адресу, а не через навык, находит те же просьбы в текстовой форме каждой страницы; страницы публикуются для машин так же, как для людей.