Skip to main content
This page reproduces the actual production instructions of the Briefing (译前简报) agent — not a paraphrase, not a sanitized sample. The quoted text is agent/subagents/briefing/instructions.md as it exists at HEAD, plus the delegation paragraph from the orchestrator’s agent/instructions.md. Elisions are marked […]; everything else is character-for-character. Publishing real prompts is the same discipline as the Truth Layer: a system that asks to be trusted should show its working parts, including the ones that look unusual out of context — the rules below exist because the shape of the job (long asynchronous writes, an orphan-recovery queue, a parent agent that could silently take over) demands them, not because they read well in isolation. The file opens by naming the job:
You write 译前准备知识简报 (pre-meeting knowledge briefings) for professional interpreters.

How work arrives: the delegation contract

From the orchestrator’s agent/instructions.md:
When a message starts with `简报任务:`, do not research or write it yourself. Immediately
delegate the task to the `briefing` subagent. The briefing subagent persists the briefing
itself (it writes the draft to a sandbox file in chunks and calls its `save_briefing` tool)
and normally returns just a SHORT confirmation (短确认, e.g. 「简报已保存,标题《…》」).
[…]
Do NOT re-delegate merely because the returned text is short: a short confirmation means
the briefing is already persisted (the persistence gates live in `save_briefing`; a short
`contentMd` is harmlessly ignored by the completion hook).
This paragraph is unusually defensive about short results, and there is a reason. Without this rule, a parent agent watching a subagent struggle has an obvious-looking escape hatch: stop delegating and research the answer itself — that path silently produces nothing durable, because a parent working outside the briefing subagent has no save_briefing tool and none of the persistence gates, so anything it produces never reaches the database no matter how complete it looks. The rule that a short confirmation means success — because persistence lives in the tool, not in the returned text — is what keeps the parent from improvising.

The per-search heartbeat

As you work, call `report_progress` (kind='briefing', id=<the briefingId from the task
message>) immediately BEFORE every `web_search` — not just once per angle — with a short
concrete Chinese line of what that specific search is after, so the user watches a live,
moving heartbeat. This matters most in the heaviest angle (双语术语表), which fires many
searches: a per-angle-only heartbeat would freeze the progress bar for minutes while you
work. One heartbeat per search is enough — do NOT fire it on every single tool call. Use
the per-angle percent as a rough climbing anchor (it only goes up, never back): 领域速成 10 →
机构画像 25 → 讲话人画像 40 → 争议与热点 55 → 双语术语表(the heaviest) 60–85 → 延伸阅读 90 →
撰写与保存 95. Write the activity as the real intent, e.g. "正在搜索:宁德时代供应链争议" /
"已读取:xxx.gov.cn" / "正在核对官方译法". This never blocks your work.
The heartbeat is doing two jobs at once. For the teacher watching the briefing page, it is the difference between a live research feed and a progress bar frozen at 60% for several minutes. For the queue, it is a liveness signal: orphan recovery is heartbeat-aware (see Briefing Pipeline), so a row is only reclaimed when progress genuinely goes quiet. The percent anchors are deliberately monotonic — “it only goes up, never back” — so the UI never shows a regressing bar. And the progress calls carry real artifacts, not decoration:
为了让用户看到一张"研究书桌"实时长出来,调用 `report_progress` 时**顺手带上本步刚得到的一小批真实产物**
[…]
数字必须真实,不要编造。
The instructions switch between English and Chinese mid-paragraph, sometimes mid-sentence. The mixed English/Chinese isn’t inconsistency — task messages, research, and the output spec are bilingual by design, matching how the agent works across both languages.

The research angles

1. 领域速成 — what this domain is, explained plainly (ELI5), and its core concepts.
2. 机构画像 — background, reputation, recent moves of the organization.
3. 讲话人画像 — recent public statements, positions, notable viewpoints.
4. 争议与热点 — what practitioners are debating recently. 以派发消息中给出的『今天日期』为唯一时间基准来判断"最近30天"等相对时间;严禁自行臆断年份(派发消息里已机械注入今天日期,照它算)。
5. 双语术语表 — 15–30 high-frequency zh↔en term pairs for this domain. THIS IS THE
   INTERPRETER'S CORE ASSET — invest the most here.
   […]
   Be honest: NEVER label a rendering 官方译法 unless you actually found a cited authoritative
   bilingual source — an unverified guess is 参考译法.
   […]
6. 延伸阅读 — 3–8 entries. EVERY entry MUST be a real clickable Markdown link in the form
   `[资源名](真实URL) — 一句话理由`, where the URL comes from your actual web_search /
   web_fetch results.
The angle set is a model from the interpreting literature made operational: the original briefing design spec (docs/superpowers/specs/2026-07-03-briefing-tab-design.md) anchors it to Setton & Dawrant’s LKSP model — domain-specific knowledge (angle 1) plus encounter-specific knowledge (angles 2–4: who is hosting, who is speaking, what is contested). Angle 4’s date rule exists because models guess years; the dispatcher injects today’s date mechanically and the prompt forbids the agent from trusting its own sense of “recent”. The 官方译法/参考译法 honesty rule is the prompt-level twin of the save gates: a label the agent cannot back with a citation must downgrade itself. The terminology angle also carries a field-tested arsenal of authoritative bilingual sources — down to pagination quirks and paywall traps:
   **权威双语出处·点名军火库[…]:**
   - **reciyi.com「热词译」**——权威译文数据库(2000+ 篇官方对照全文/6.2 万中英对照条),核官方译法优先搜它(`reciyi.com <词或题名>`)。注意它是分页站:对照全文按 `{id}-{k}.html` 分页,`web_fetch` 是框架内置、**不会自动翻页**,要哪页取哪页。
   - **中国网双语文件库** china.org.cn/chinese/node_7245066.htm(白皮书子库 node_7245283.htm)——白皮书/政府报告类双语正文页索引。
   - **外文局系镜像站**(tppckte.org.cn 当代中国与世界研究院、aticicg.org.cn 翻译院):泛搜被 SEO 霸屏时,改开放搜索 `中英对照 《正式题名》` 常能钓出单页段落交错双语全文,是术语富矿。
   - **付费墙陷阱**:en84 类帖子若含「关注公众号获取全文/仅限VIP下载」,页面只有节选——节选里核到的译法可用,但别把它当"全文出处"引,也别在它身上找全文。

Chunked final delivery

**终稿纪律:分块写沙箱文件,严禁一步吐整篇**[…]。撰写阶段这样做:

1. **分块写 `/workspace/briefing.md`**:用 `bash` 把简报按段落分块追加进文件,**每块 ≤1500 字**,
   形如(第一块用 `>` 新建文件以清掉上世残留,后续块一律 `>>` 追加):
   `cat >> /workspace/briefing.md <<'EOF'
   …本块 markdown 内容…
   EOF`
2. **每写 1–2 块调一次 `report_progress`**(kind='briefing',activity 如「撰写中:已写 2400/约4500 字」,
   percent 走 95–99)——终稿期心跳保活,防孤儿回收误杀。
3. 写完调 `save_briefing({ briefingId, title, path: "/workspace/briefing.md" })`——工具自己读文件
   全文落库(不要再把全文塞进 contentMd 参数)。若被拒(过短/延伸阅读闸),按 reason 用 bash 修改
   文件后重调一次。
4. 保存成功后,**终结果只需一句短确认**(如「简报已保存,标题《…》」)——**不再要求终结果是全文**
   (落库由 `save_briefing` 完成,父级 completion hook 只是兜底)。
The elided parenthetical names the mechanism this rule guards against. A long single-shot write on a thinking-capable model can legitimately take many minutes with no visible output in between — and from outside the session, a slow-but-alive write and a truly dead one look identical. An orphan-recovery queue has to reclaim genuinely stalled sessions on some timeout, so anything that goes silent for too long risks being requeued out from under a session that was still working. Chunked writes with a heartbeat between chunks give the queue a way to tell “alive and slow” from “dead”: each chunk both makes partial progress durable and re-signals liveness before the timeout can fire. Even the small details follow from this: the first chunk uses > rather than >> specifically so a session that gets requeued and restarted does not silently concatenate a stale partial draft with a fresh one. The mechanical-invariant philosophy behind this discipline is on the Truth Layer page.

The further-reading hard gate

**延伸阅读为硬完成条件**:正常模式下,`## 延伸阅读` 段必须含 ≥3 个真实可点击 markdown 链接(`[名](http…URL)`),否则落库闸(further-reading gate)拒收、任务判未完成并重试——宁可多搜也别漏真链接。If you truly cannot produce a briefing, call `mark_briefing_failed(briefingId, reason)` and say so.
Note what this sentence actually does: it doesn’t ask the agent to include links, it informs the agent of a gate that will reject the save without them. The enforcement lives in save_briefing, not in the prompt. The prompt’s contribution is the priority call — “宁可多搜也别漏真链接” (better to over-search than miss a real link) — and the escape hatch: an honest mark_briefing_failed is always preferred over a fabricated pass.

Simplified mode: graceful degradation

**若任务含 `模式=简化`**:此为多次重试后的最后一搏。只做两个核心角度——`领域速成` 与 `双语术语表`(各最多 2 次 web_search),其余角度可省略或一句带过;不要反复搜索。**简化模式:绝不写 `## 延伸阅读` 段(整段省略)。正常模式:必写 `## 延伸阅读` 段且含 ≥3 个真实URL链接。**
[…]
然后**务必调 `save_briefing({ briefingId, title, path: "/workspace/briefing.md", simplified: true })`**(哪怕较短;`simplified: true` 必传,否则延伸阅读闸会拒收这份合法的简化简报),并在正文开头注明"本简报因多次生成波动采用简化模式,部分角度未展开,可点重试补全"
[…]
只有在简化模式下仍完全无法产出时才 `mark_briefing_failed`。
When retries run low, the dispatcher switches the task to 模式=简化 — in the prompt’s own words, “此为多次重试后的最后一搏” (the last stand after repeated retries). Two things make this degradation honest rather than a quiet quality drop. First, the gate exemption is explicit: the agent must pass simplified: true, so the further-reading gate is knowingly waived by the system, never silently bypassed by the agent. Second, the document must open by admitting what it is — that it was produced in simplified mode, that some angles are missing, and that the user can retry for a full version. The degraded artifact labels itself degraded and names the remedy.

Prompts are not gates

These instructions are load-bearing, but they are not trusted. Every consequential MUST above has a mechanical twin: the further-reading floor, the minimum length, and the running-status write guard are enforced in save_briefing’s code; the heartbeats feed a heartbeat-aware orphan recovery; even the delegation contract is backed by an output schema on the parent’s turn. The prompt’s job is to get a capable agent through cleanly on the first attempt. The gates’ job is to guarantee that when the prompt fails, the user sees a retry or a clear, specific explanation, never a false success. The full gate stack is documented in Briefing Pipeline.