> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interpscout.org/llms.txt
> Use this file to discover all available pages before exploring further.

# What is InterpScout?

> An agentic teaching platform for interpreter training, running in real classrooms at Sichuan University

**InterpScout is a teaching agent for interpreter training.** It closes the full loop of an interpreting classroom — a teacher prepares course material, students practice against it, machines score every attempt, and the results flow back to the teacher — with autonomous agents performing the work at each step.

It is not a demo. InterpScout runs in production at [interpscout.org](https://interpscout.org), used by a practicing interpreting teacher and her students. Every course, briefing, and score you can see with the [test accounts](/judges-guide) was produced by the live system.

<Note>
  评委您好 — 如果您想先用中文快速了解产品逻辑与测试路径,请直接阅读 **[评委导览(中文)](/judges-guide)**。
</Note>

## The loop

<div style={{position: "relative", width: "100%", maxWidth: "640px", margin: "2rem auto"}}>
  <svg viewBox="0 0 900 780" style={{width: "100%", height: "auto", display: "block"}} role="img" aria-label="The InterpScout loop: a teacher submits a source or meeting topic to the Producer and Briefing agents; their output and a shared terminology base flow through student practice, AI scoring, flashcards, and dashboards, and back to the teacher.">
    <path d="M509.9 330.1 L625.1 214.9" stroke="#C8A55B" strokeWidth="1.5" strokeDasharray="5 5" fill="none" />

    <path d="M552.0 390.0 L633.0 390.0" stroke="#C8A55B" strokeWidth="1.5" strokeDasharray="5 5" fill="none" />

    <path d="M509.9 449.9 L625.1 565.1" stroke="#C8A55B" strokeWidth="1.5" strokeDasharray="5 5" fill="none" />

    <path d="M533.6 124.7 L565.5 137.9" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M577.5 142.9 L563.8 142.1 L567.2 133.8 Z" fill="#8A8378" />

    <path d="M486.9 126.9 L703.2 343.2" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M712.3 352.3 L700.0 346.3 L706.3 340.0 Z" fill="#8A8378" />

    <path d="M662.0 217.0 L662.0 549.0" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M662.0 562.0 L657.5 549.0 L666.5 549.0 Z" fill="#8A8378" />

    <path d="M734.0 428.5 L683.3 550.6" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M678.4 562.6 L679.2 548.9 L687.5 552.3 Z" fill="#8A8378" />

    <path d="M578.4 636.7 L546.5 649.9" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M534.5 654.9 L544.8 645.8 L548.2 654.1 Z" fill="#8A8378" />

    <path d="M366.4 655.3 L334.5 642.1" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M322.5 637.1 L336.2 637.9 L332.8 646.2 Z" fill="#8A8378" />

    <path d="M222.0 563.5 L171.3 441.4" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M166.4 429.4 L175.5 439.7 L167.2 443.1 Z" fill="#8A8378" />

    <path d="M166.0 351.5 L216.7 229.4" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M221.6 217.4 L220.8 231.1 L212.5 227.7 Z" fill="#8A8378" />

    <path d="M321.6 143.3 L353.5 130.1" stroke="#8A8378" strokeWidth="2" fill="none" />

    <path d="M365.5 125.1 L355.2 134.2 L351.8 125.9 Z" fill="#8A8378" />

    <path d="M450 335 L545 390 L450 445 L355 390 Z" fill="#C8A55B" fillOpacity="0.16" stroke="#C8A55B" strokeWidth="1.6" />

    <rect x="355.0" y="58.0" width="190" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />

    <rect x="562.0" y="146.0" width="200" height="64" rx="12" fill="#B5763F" fillOpacity="0.16" stroke="#B5763F" strokeWidth="1.6" />

    <rect x="640.0" y="358.0" width="220" height="64" rx="12" fill="#B5763F" fillOpacity="0.16" stroke="#B5763F" strokeWidth="1.6" />

    <rect x="552.0" y="570.0" width="220" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />

    <rect x="350.0" y="658.0" width="200" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />

    <rect x="133.0" y="570.0" width="210" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />

    <rect x="55.0" y="358.0" width="190" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />

    <rect x="133.0" y="146.0" width="210" height="64" rx="12" fill="#8A8378" fillOpacity="0.10" stroke="#8A8378" strokeWidth="1.4" />
  </svg>

  <div style={{position: "absolute", left: "21.85%", top: "64.42%", transform: "translate(-50%,-50%)", fontSize: "11.5px", fontStyle: "italic", color: "#8A8378", whiteSpace: "nowrap"}}>missed terms</div>

  <div style={{position: "absolute", left: "50.00%", top: "11.54%", transform: "translate(-50%,-50%)", textAlign: "center", width: "21.1%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Teacher</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>a source, or a meeting topic</div>
  </div>

  <div style={{position: "absolute", left: "73.56%", top: "22.82%", transform: "translate(-50%,-50%)", textAlign: "center", width: "22.2%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Producer agent</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>aligns & curates courses</div>
  </div>

  <div style={{position: "absolute", left: "83.33%", top: "50.00%", transform: "translate(-50%,-50%)", textAlign: "center", width: "24.4%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Briefing agent</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>researches & writes briefings</div>
  </div>

  <div style={{position: "absolute", left: "73.56%", top: "77.18%", transform: "translate(-50%,-50%)", textAlign: "center", width: "24.4%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Courses & Briefings</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>parallel-reading + pre-meeting</div>
  </div>

  <div style={{position: "absolute", left: "50.00%", top: "88.46%", transform: "translate(-50%,-50%)", textAlign: "center", width: "22.2%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Students practice</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>sight interpretation, aloud</div>
  </div>

  <div style={{position: "absolute", left: "26.44%", top: "77.18%", transform: "translate(-50%,-50%)", textAlign: "center", width: "23.3%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>AI scoring</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>accuracy · terms · fluency</div>
  </div>

  <div style={{position: "absolute", left: "16.67%", top: "50.00%", transform: "translate(-50%,-50%)", textAlign: "center", width: "21.1%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Flashcards</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>spaced repetition (FSRS)</div>
  </div>

  <div style={{position: "absolute", left: "26.44%", top: "22.82%", transform: "translate(-50%,-50%)", textAlign: "center", width: "23.3%"}}>
    <div style={{fontWeight: 700, fontSize: "14.5px"}}>Dashboards</div>
    <div style={{fontSize: "10.5px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>progress & class-wide trends</div>
  </div>

  <div style={{position: "absolute", left: "50.00%", top: "50.00%", transform: "translate(-50%,-50%)", textAlign: "center", width: "17.8%"}}>
    <div style={{fontWeight: 700, fontSize: "13.5px"}}>Terminology base</div>
    <div style={{fontSize: "10px", color: "#8A8378", marginTop: "2px", lineHeight: 1.25}}>shared across every course</div>
  </div>
</div>

*Terracotta marks the two autonomous agents; gold marks the shared terminology base that every course and briefing both feeds and draws from. The loop closes back at the teacher, who sees only finished artifacts — or a clear explanation of what a source could not support.*

An interpreting classroom has three chronic bottlenecks: preparing bilingual teaching material is slow, pre-meeting preparation is unteachable at scale, and practice feedback depends entirely on teacher hours. InterpScout assigns an agent to each.

<CardGroup cols={2}>
  <Card title="Producer — course production" icon="newspaper" href="/concepts/agent-team">
    The teacher points at a bilingual source (or picks from daily auto-discovered candidates). The Producer agent aligns it paragraph by paragraph, curates terminology across the whole document, and publishes a parallel-reading course — typically in minutes.
  </Card>

  <Card title="Briefing — pre-meeting preparation" icon="file-lines" href="/concepts/agent-team">
    Given a meeting topic, the Briefing agent researches the web, cross-checks sources, and delivers a 9,000-character pre-meeting knowledge briefing: domain crash course, speaker and institution profiles, contested issues, and a graded bilingual term table.
  </Card>

  <Card title="Practice — sight interpretation" icon="microphone" href="/concepts/practice-loop">
    Students interpret real sentences from real courses, out loud. A multimodal model listens to the audio directly and scores accuracy, terminology, and fluency — then routes every missed term into that student's flashcard queue.
  </Card>

  <Card title="Classroom — management & analytics" icon="chalkboard-user" href="/concepts/classroom">
    Teachers create classes with invite codes, watch per-student averages, and see the terms the whole class keeps missing — data deciding what next week's lesson should be.
  </Card>
</CardGroup>

What connects them is a **cross-document terminology base**: every course a teacher produces deposits its curated terms — with officially-graded translations and sources — into a shared, searchable glossary that gets thicker with use.

## Why agents, not a chatbot

A chatbot answers questions; a classroom needs **artifacts**: a finished course, a finished briefing, a finished score. InterpScout's agents run as durable, long-lived sessions that survive deployment restarts, report progress in real time, and are held to *mechanical* quality gates — a course cannot be saved with misaligned paragraphs, a briefing cannot be saved without its term table and verified further-reading links. When a gate rejects, the agent reads the reason and revises inside the same session. The teacher sees only the finished artifact, or a clear, specific explanation of what a source could not support.

This philosophy — machines check what machines produce, and prompts are never trusted as guarantees — runs through the whole system. Read [Truth Layer & Mechanical Invariants](/internals/truth-layer) for how deep it goes.

## In numbers

|                       |                                                                              |
| --------------------- | ---------------------------------------------------------------------------- |
| Real courses produced | 33 (e.g. 2026 Government Work Report: 218 terms, 246 aligned sentence pairs) |
| Pre-meeting briefings | 9,000-character class, with graded bilingual term tables                     |
| Practice loop         | 3-dimension multimodal audio scoring → automatic weak-term flashcards        |
| Deployment            | Production on Vercel, durable agent runtime, used by real teacher & students |

## Where to go next

* **Judges**: start with the [评委导览 (Chinese quick guide)](/judges-guide) or the [English quickstart](/quickstart) — both include ready-to-use test accounts.
* **Curious about the machinery**: [Architecture](/internals/architecture) → [Document Workshop](/internals/document-workshop) → [Truth Layer](/internals/truth-layer).
* **Curious about the pedagogy**: [Philosophy](/philosophy).
