TheFocus.AI TheFocus.AI
03 trajectories Lesson 9

Chapter 09: Teacher Traces

Understand distillation metrics, generate teacher trajectories, convert and train with the existing Makefile, then measure tool-call validity before vs after.

TUTOR WITH THEFOCUS.AI

Agent Integration

Copy this prompt into Claude, ChatGPT, or any external AI assistant. It points the assistant to the course instructions and links it to your student profile to track your progress and customize observations.

Please tutor me in this lesson using the following context. First, read the instructions at: https://courses.thefocus.ai/llms.txt My Student ID is: <none> The lesson markdown source is at: https://courses.thefocus.ai/fine-tune-local-agent/03-trajectories/09-teacher-traces.md

You are not enrolled yet. Enroll to generate a Student ID to track lesson completions and store learning notes.

Chapter 09: Teacher Traces

Objective

Run the harness against a teacher (e.g. Claude), convert trajectories, train the 1B with the Part 2 pipeline, and report tool-call validity rate before and after.


Concept: Distill procedure, not knowledge

Teacher traces are your first real training set. The small model learns the teacher’s procedure (when to call tools, how to format calls, when to stop) — not a frozen copy of the repo.

The metric that matters

Not loss. Tool-call validity rate: of assistant turns that attempted a tool call, what fraction parsed and executed without error?

Base 1B on a custom protocol: expect something dismal. That gap is the point.

Secondary: mean steps, hallucinated-file rate, premature-stop rate.

Failure modes

  • Hallucinated observations → loss masking; back to Chapter 05 Check 2 (canary + --mask-prompt)
  • Protocol drift → more examples, stricter delimiters, identical system prompts
  • 1B too weak → try 4B after pipeline is proven on 1B

Concept check

Q1. Why is tool-call validity a better primary metric here than training loss?

Q2. A task says “Where is X configured?” Why is a teacher trace still useful if the 1B will never match Claude’s depth?

Concept answer key — attempt first

Answer key (concept)

Q1

Model answer: Loss can fall while protocol stays broken; validity measures the habit you care about (parseable, executable calls).

Pass criteria: metric matches goal / loss can mislead

Q2

Model answer: You are teaching call shape and loop behavior, not Claude-level reasoning; validity can rise without matching teacher intelligence.

Pass criteria: procedure/protocol vs full capability


Gate: Task list (raw)

Write 100–300 real questions about a real repo by hand (or carefully curated), e.g.:

  • “Where is X configured?”
  • “Summarize how Y flows through the system”
  • “What would break if I changed Z?”

Keep them in a raw tasks file; do not invent training JSONL by hand.


Gate: Generate teacher trajectories

Point the harness at the teacher API. Run the task list. Append to trajectories/raw.jsonl.

Pass: hundreds of lines (or a smaller pilot if cost-constrained — note the count to your tutor); failures logged too.


Gate: Convert → train → measure

make data    # to_training_data.py
make train   # same Part 2 pipeline

Measure validity on a held-out slice before and after on the 1B.

Exit criteria

  • Fine-tuned 1B has materially higher tool-call validity than base
  • Entire training set regenerates from raw trajectories with one command

Deliverables

  • harness.py
  • trajectory.jsonl (teacher traces)
  • to_training_data.py
  • A number: validity before vs after

Check your understanding

Q3. Same Makefile as Part 2, only JSONL changed — what did that buy you?

Q4. Model invents file contents without calling read_file. First diagnosis?

Answer key — attempt every question first

Answer key

Q3

Model answer: Pipeline reuse — data is the only moving part; no re-plumbing train/serve.

Pass criteria: reuse / data-only change

Q4

Model answer: Loss masking / training on tool observations as targets.

Pass criteria: masking / Check 2


← Chapter 08 · Next: Part 4 →

Previous Lesson 9 of 16 Next