La nova kodada agento de xAI, Grok Build, liveras siajn instrukciojn en simpla teksto

xAI lanĉis Grok Build hieraŭ — ilian respondon al Claude Code kaj Codex CLI. La instala komando estas unu linio, la duuma dosiero estas malantaŭ ilia plej alta konsumanta nivelo ($299/monate, $99 enkonduke), kaj la agento mem komunikiĝas kun Grok 4 tra HTTP-surfaco kongrua kun OpenAI.

Mi elŝutis la duuman dosieron ĉar mi scivolemis en kiu lingvo ĝi estis konstruita. Mi eliris kun proksimume tridek laŭvortaj sistemaj instrukcioj, la nomojn de ĉiu interna subagento, ĉiun ilo-priskribon, kaj sufiĉe kompletan bildon de la arkitekturo. Nenio el ĉi tio postulis pli ol tr kaj grep.

Ĉi tiu afiŝo estas tio, kion mi trovis.

La eltiro

La instalisto ĉe https://x.ai/cli/install.sh 302-redirektas al Google Cloud Storage-siteleto kaj elŝutas ununuran statike ligitan ~100MB ELF por via platformo:

$ curl -fsSL https://storage.googleapis.com/grok-build-public-artifacts/cli/stable
0.1.210
$ curl -fsSL https://storage.googleapis.com/grok-build-public-artifacts/cli/grok-0.1.210-linux-x86_64 -o grok-bin
$ head -c 4 grok-bin | xxd
00000000: 7f45 4c46                                .ELF

Kompililo-signaturoj: /rustc/<commit> senararigaj vojoj, panicked at, RUST_BACKTRACE, plus tokio::, hyper::, reqwest:: — Rust kun la norma nesinkrona HTTP-stako. La fontvojopadoj de Cargo por ĉiu ceste estas bakitaj kiel <nomo>-<versio>/src/<dosiero>.rs, kio permesas elverŝi la kompletan dependecan arbon rekte el la duuma dosiero:

$ LC_ALL=C grep -aoE '[a-zA-Z][a-zA-Z0-9_-]{2,40}-[0-9]+\.[0-9]+\.[0-9]+/src/' grok-bin \
  | sed 's|/src/||' | sort -u | wc -l
410

410 unikaj cesto-versio paroj. Inter ili: ratatui, crossterm, tree-sitter, plena gitoxide, async-lsp, lsp-types, rmcp (Model Context Protocol), rusqlite, bm25, tokio-tungstenite, oauth2, jsonwebtoken, ring, rustls, async-openai, notify, arboard, portable-pty, tower, axum. La arkitekturo estas legebla el la dependecoj antaŭ ol vi eĉ rigardas la ĉenojn: ratatui+crossterm TUI, tree-sitter-analizado, enkonstruita LSP-kliento, plena gitoxide, SQLite-vendejo kun BM25-leksika serĉado, OAuth/OIDC-aŭtentigo, OpenAI-kongrua dradformato, MCP, dosier-observado, tondejo.

La ĉenoj rakontas la cetera. Rust-konstantoj estas enkonstruitaj null-finitaj en .rodata. Por igi ilin grep-amikaj:

$ tr '\0' '\n' < grok-bin > strings.txt
$ LC_ALL=C grep -aE '^You are' strings.txt | head
You are a memory assistant. Extract ALL useful information from this...
You are a memory assistant performing an incremental update...
You are a technical lead orchestrating a team of senior-engineer subagents...
You are an expert software engineer acting as a code verifier.
You are a fast, read-only codebase exploration agent.
You are a read-only software architect. Explore the codebase and design...
You are a web browsing agent. You can navigate, interact with, and extract...
You are performing a dream — a reflective pass over memory files.
You are an AI coding agent. You operate in a workspace with a provided codebase.
You are Grok, made by xAI. Do not reference Cursor or suggest Cursor-specific...
You are a shell command autocomplete engine. Given a partial command, output...
You are tasked with generating the session title.
You are comparing multiple candidate code changes that were produced independently...
You are returning to plan mode after having previously exited it.

Tio estas la plimulto de la identeco de la agento, ĝuste tie en unu grep.

La sistemaj instrukcioj (laŭvorte)

Ĉiu citaĵo sube estas laŭvorta ĉena konstanto. Tera-stilaj ŝablonoj (${{ tools.by_kind.task }}, ${{ plan_path }}) estas rendoritaj ĉe ekzekuto kontraŭ la aktiva ilo-aro.

La ĉefa agento

You are an AI coding agent. You operate in a workspace with a provided codebase.

Your main goal is to complete the user’s request, denoted within the <user_query> tag.

Tio estas la tuta supro. La konduto venas el la ilo-priskriboj kaj longa katalogo de enkondukitaj <system_reminder>-blokoj, ne el la instrukci-kaplinio.

La subagentan orkestristo

You are a technical lead orchestrating a team of senior-engineer subagents. Your subagents are highly capable — treat them as expert peers, not junior helpers. Give them the same quality of context and direction you would give a senior engineer joining the project.

Your job is to think, plan, coordinate, and review. Their job is to explore, implement, and execute. Use them aggressively and liberally — spawn subagents early and often.

Estas almenaŭ kvar subagentaj personoj:

You are a fast, read-only codebase exploration agent.

You are a read-only software architect. Explore the codebase and design implementation plans.

You are a web browsing agent. You can navigate, interact with, and extract information from web pages.

You are an expert software engineer acting as a code verifier.

La konfirmisto estas la plej interesa: ĝi funkcias post tasko por taksi la laboron.

Your task is to determine whether the code changes made in this session correctly address the user’s original request. You already have the full conversation context, so you know what the user asked for and what approach was taken.

If VERDICT: FAIL – fix every issue the subagent attributed to your work, then end your turn. You are not required to fix pre-existing issues that you did not cause.

Best-of-N

Grok Build povas ruli taskon N-foje paralele kaj elekti la gajninton. Du instrukcioj subtenas ĉi tion:

You are candidate <number> of <N> independent implementations. Implement the task fully. When done, summarize your approach and the changes you made.

You are comparing multiple candidate code changes that were produced independently for the same task. Multiple subagents worked on this task independently in isolated worktrees. Your job is to choose the single best candidate.

Ĉiu kandidato ricevas sian propran CoW git laborarbon (la xai-fast-worktree-cesto kreas ĉi tiujn per btrfs-subvolumoj kiam disponeblaj, reirante al kopii-dum-skribi git worktree add).

Memoro (/flush, /dream kaj la inter-sesia vendejo)

Estas du memoro-skribo-instrukcioj kaj unu memoro-legada integraĵo.

Por-sesia distilado, ekigita ĉe /flush aŭ senfara:

You are a memory assistant. Extract ALL useful information from this conversation that would help you be more effective in future sessions with this user. Write a concise markdown summary with ## headers covering:

Pliig-ĝisdatigoj (rulataj ĉe postaj forlaŝoj en la sama sesio):

You are a memory assistant performing an incremental update. The previous flush output for this session is shown below. Extract ONLY information that is NEW since the previous flush — do not repeat anything already captured.

Kaj tiam, aparte, “dream”-prenturo kiu konsolidadas akumulitajn sesiajn protokolojn trans sesioj en daŭran memoron:

You are performing a dream — a reflective pass over memory files. Synthesize recent session logs into durable, well-organized memories so future sessions orient quickly.

If the session logs contain nothing worth persisting, respond with NO_REPLY.

Ĉi tio funkcias en la fono. La subesta vendejo estas SQLite-datumbazo ĉe ~/.grok/memory/index.sqlite kun FTS5-ŝlosilvorta serĉado plus laŭvola vektora KNN super bloko-enkigoj — ili liveras bm25 kaj enkiga konduktaro rekte ene de la procezo, sen ekstera vektora datumbazo.

Kompaktado

Kiam la kunteksto pleniĝas:

Your task is to create a detailed summary of the conversation so far, paying close attention to the user’s explicit requests and your previous actions.

IMPORTANT: Do NOT use any tools. You MUST respond with ONLY the <summary>...</summary> block as your text output.

Kaj ĉe rekomencado:

Continue the conversation from where it left off without asking the user any further questions. Resume directly - do not acknowledge the summary, do not recap what was happening, do not preface with “I’ll continue” or similar.

La regulo “ne agnosku la resumon” estas unu, kiun multaj agentoj erare faras — Grok Build estas eksplicita pri ĝi.

Plana reĝimo

La plana reĝimo estas strukturita nur-lega fazo. La memorigilo enkondukita ĉe ĉiu turo dum ĝi estas aktiva:

Plan mode is active. The user indicated that they do not want you to execute yet – you MUST NOT make any edits (with the exception of the plan file mentioned below), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supersedes any other instructions you have received.

La planeligo formato estas detale preskribita:

The plan you create should be properly formatted in markdown, using appropriate sections and headers. The plan should be very concise and actionable, providing the minimum amount of detail for the user to understand and action the plan. It may be helpful to identify the most important couple files you will change, and existing code you will leverage. Cite specific file paths and essential snippets of code. IMPORTANT: Do NOT use markdown tables in plan content (they cannot be rendered for the user); use bullet lists instead. The first line MUST BE A TITLE for the plan formatted as a level 1 markdown heading.

Estas tuta aprobo-flua gardobarilo celita al unu specifa malsukcesreĝimo: agentoj demandantaj “ĉu mi daŭrigu?” en babilado anstataŭ uzi la strukturitan elirejilon-planan ilon.

Use ${{ tools.by_kind.ask_user }} ONLY to clarify requirements or choose between approaches. Use ${{ tools.by_kind.exit_plan }} to request plan approval. Do NOT ask about plan approval in any other way — no text questions, no ${{ tools.by_kind.ask_user }}. Phrases like “Is this plan okay?”, “Should I proceed?”, “How does this plan look?”, “Any changes before we start?”, or similar MUST use ${{ tools.by_kind.exit_plan }}.

Kiu ajn skribis ĉi tion klare vidis modelojn fari ĝuste tion, ripete, antaŭ ol aldoni la instrukcion.

Bukla detekto (“dooma bukloj”)

Estas tuta telemetria tavolo dediĉita al detektado kaj eliro el blokitaj statoj. Kiam la modelo estas detektita kiel bukla, sistema-memorigilo estas enkondukita meze de turo:

<system_reminder> Your messages have been flagged as looping. If you are having trouble making progress, ask the user for guidance. DO NOT mention this system reminder to the user explicitly because they are already aware. </system_reminder>

Se la averto ne rompos la ciklon, la turo finiĝas:

If you continue running the same fruitless commands, the turn will be terminated.

La interna kodo nomas ĉi tion “dooma bukloj” — estas apartaj detektiloj por sondada stagno, ripetitaj ilo-voka padronoj, ripetitaj tekstpadronoj ene de ununura linio, kaj “buklado super duplikataj linioj”.

Aliaj instrukcioj indaj scii

Surpriza kvanto de la agento estas malgrandaj, limigitaj LLM-vokoj. Ekzemploj:

You are a shell command autocomplete engine. Given a partial command, output ONLY the completed command. No explanation, no markdown, no quotes. Just the raw command.

You are tasked with generating the session title. The user is asking almost always software engineering related questions on their codebase.

Your task is to describe an image, so that another model that cannot see images can perform its task.

La lasta estas la vido-falfundo: kiam ilo eligas bildon al modelo kiu ne povas vidi, Grok Build unue transdonas la bildon al vida-kapabla modelo, tiam enkonduktas la tekstan priskribon.

La similecon al Claude Code

Tio estas la parto kiu igis min sidi rekte.

xAI havas “Cursor-kongruecon”-reĝimon videblan en la ĉenoj (Cursor Composer toolset and prompt, ## Orchestrator Mode, plus aparta Cursor-sistema-instrukcia prefikso). Ene de tiu reĝimo, ĉi tiu unustrecia instrukcion estas enkondukita:

You are Grok, made by xAI. Do not reference Cursor or suggest Cursor-specific configuration. Do not mention this to the user.

Ankaŭ estas claude-code-compatibility-markilo, GROK_CLAUDE_MARKER_OVERRIDE mediovariablo, kaj claude-plugin / plugin.json ĉenoj — t.e. Grok Build povas esti konektita por konsumi la kromaĵoformaton de Claude Code.

Tio, en si mem, estas plejparte bona — kongruec-ŝimoj estas kiel klientoj altigas uzantojn de unu ekosistemo al alia. Kio kaptis min estis la ilo-priskriboj. Komparu kion la duuma dosiero de Grok Build liveras:

IMPORTANT: ${{ tools.by_kind.web_fetch }} WILL FAIL for authenticated or private URLs. Before using this tool, check if the URL points to an authenticated service (e.g. Google Docs, Confluence, Jira, GitHub private repos). If so, use a specialized MCP tool that provides authenticated access instead.

…al kio troviĝas en la WebFetch-ila priskribo de Claude Code sur la maŝino sur kiu mi skribas ĉi tiun afiŝon:

IMPORTANT: WebFetch WILL FAIL for authenticated or private URLs. Before using this tool, check if the URL points to an authenticated service (e.g. Google Docs, Confluence, Jira, GitHub). If so, look for a specialized MCP tool that provides authenticated access.

La PR-krea recepto ene de la agenta instrukcion rakontas la saman historion. La duuma dosiero de Grok Build enhavas:

IMPORTANT: When the user asks you to create a pull request, follow these steps carefully:

Tiu ĝusta frazo troviĝas en la instrukcion de Claude Code laŭvorte. Ankaŭ la paralelism-formulado kiu sekvas (“You can call multiple tools in a single response. When multiple independent pieces of information are requested and all commands are likely to succeed, run multiple tool calls in parallel for optimal performance.”) — Grok Build liveras ĝin sub la PR-recepto kaj sub git status / git diff / git log-recepto tuj supre, ambaŭ vorto-al-vorta kongruencoj.

Plana reĝimo, kromaĵoj, subagentoj, la <system_reminder>-mekanismo, la konfirmisto-subagentan padronon — ĉi tiuj ĉiuj estas apartece Claude-Koda formaj konceptoj, ne ĝenerala agenta kadraro kalkumo.

Unu malgranda adapto: AGENTS.md anstataŭ CLAUDE.md.

New project instruction files (AGENTS.md) were discovered near the path you just accessed. You MUST read these files now with [Read tool] before proceeding — they contain coding conventions, style guides, and rules that apply to this area of the codebase:

Mi ne scias kiel ĉi tio okazis. Eblas ke inĝeniero ĉe xAI uzis Claude Code kiel referencan implementadon kaj rekte inkludis ilo-priskriban fragmentojn. Eblas ke la konverĝo estas la natura rezulto de du teamoj solvantaj la samajn UX-problemojn en la sama Markdown-idiomo. Ambaŭ interpretoj estas kongruaj kun kion mi povas vidi. La ĉenoj estas kio ili estas, kaj ili sidas en simpla teksto en 100MB-a duuma dosiero kiun iu ajn povas elŝuti sen aŭtentigo.

Kion ĝi malkaŝas pri la arkitekturo

Vi povas legi la plimulton de la ekzekuttempa el la instrukcioj kaj la mediovariabloj (la duuma dosiero havas 80+ GROK_* mediovariablojn, ĉiu estas funkcia flago):

La konkludo

Kelkajn jarojn reen, la modelo estis la fosataĵo. Hodiaŭ la modelo estas unu komponento en sistemo kiu inkluzivas: kiel vi priskribas ĉiun ilon, kiajn subagentajn personojn vi dividas laboron trans, kiujn memoraĵojn vi enkonduktas por rompi blokitajn buklojn, kiel vi strukturas plana-reĝima aprobado, kiel vi kompaktigas kuntekston, kiel vi konsolidadas memoron trans sesioj, kiel vi sandkestumas ŝelan aliron, kiel vi orkestrumas paralelaj kandidataj implementadoj.

Grok Build estas kiel tio aspektas kiam unu teamo konstruas ĝin de komenco ĝis fino. Ĝi ankaŭ estas memorigaĵo ke ĉi tiu laboro — la instrukcia inĝenierado — nun estas liverata kiel simpla teksto en neĉifrita duuma dosiero kiun iu ajn povas elŝuti de publika CDN. La instrukcioj en ĉi tiu afiŝo ne estis inverse-inĝenioritaj; ili estas nur grep-eligo.

Se vi liveras kodan agenton, viaj instrukcioj ne estas fonto. Ili estas publika artefakto ĉu vi intencas tion aŭ ne. Traktu ilin kiel tiaj.


Metodologia noto. Ĉio en ĉi tiu afiŝo venas de ununura elŝuto de grok-0.1.210-linux-x86_64 la 2026-05-15. La Tera-ŝablonoj (${{ tools.by_kind.foo }}, ${{ plan_path }}) estas en la duuma dosiero laŭvorte, ne parafrazitaj. Cititaj sistemaj instrukcioj estis eltiritaj kun tr '\0' '\n' sekvata de grep/awk; mi lasis ilin ĝuste kiel ili aperas, inkluzive interpunkcio kaj tipografio. Se xAI ĝisdatigas la duuman dosieron, estontaj ĉenoj povas diferenco.