Four things on this page: the full answer key for the repo scavenger hunt, how to join a group for Group Assignment 1, clear step-by-step tutorials for each build path, and a heads-up on Quiz 1 with sample questions.
Finding evidence in a 111-module repo was genuinely hard — that was part of the point. Here is the full map: one concrete file per layer, with what you’ll find inside. Remember: the repo has no folders named “Goal” or “Loop” — the nine layers are our architectural interpretation, not OpenAI’s official taxonomy. (Paths verified Sept 2026; this repo moves fast.)
| Layer | File (click to open) | What you find there |
|---|---|---|
| 01 Goal | mcp-server/src/codex_tool_config.rs | The goal is surprisingly thin — just “the initial user prompt to start the Codex conversation.” No GoalManager class. Persistence comes from keeping that objective in context across many actions. Prompt = one message; goal = that objective across a sequence of actions. |
| 02 Model / Reasoning | core/src/config/edit.rs | SetModel { model, effort } — the model and its reasoning effort are configuration. The model decides what to do next; the runtime carries it out. Reasoning is a component, not the whole system. |
| 03 Instructions | config/src/config_toml.rs | Instruction layers beyond your prompt: “Developer instructions inserted as a ‘developer’ role message.” Goal = what outcome; instructions = how to behave while pursuing it. |
| 04 Tools | core/src/tools/handlers/plan_spec.rs | name: "update_plan" — a tool defined in code, with a schema (steps, statuses: pending / in_progress / completed) the model can see. Tools turn “input → text” into “reason → choose tool → act → observe.” |
| 05 Environment | core/tests/suite/prompt_caching.rs | Codex injects environment context — the tests check for <cwd>, <shell>, <current_date>, <timezone> tags. The environment is the world the agent can observe and act on. |
| 06 State / Memory | core/config.schema.json | History persists to ~/.codex/history.jsonl, and a separate memories subsystem exists. Three kinds: turn state → conversation state → long-lived memory. You don’t need all three to be an agent. |
| 07 Agent Loop ⭐ | core/src/session/turn.rs | Read this file first. Its comments state the whole algorithm: if the model requests a function call, execute it and send the output back; if it sends only a message, the turn is complete. That’s the agent loop — and its stop condition — in two sentences. |
| 08 Guardrails / HITL | core/src/exec_policy.rs | Decision::Prompt → NeedsApproval — policy code sits between reasoning and action: allow, forbid, or ask the human. Model intention ≠ execution permission. This is runtime enforcement, not a polite prompt line. |
| 09 Evaluation | protocol/…/base_instructions/default.md | The base instructions tell the agent to verify its work with the project’s own tests and builds. Evaluation doesn’t need another LLM — pytest passing is evaluation. And a failing test feeds the loop: fail → observe → reason → retry. |
The real Rust adds streaming, cancellation, compaction, errors, parallel tools — but architecturally, that is Codex. The single takeaway of Week 2: the LLM is only one component of the agent.
core/src/session/turn.rs (the loop) → core/src/tools/ → protocol/…/base_instructions/default.md → core/src/session/turn_context.rs → core/src/exec_policy.rs → config / history / memories. Loop first — or you’ll drown in infrastructure.GA1 (the Job Search Agent) is submitted as a group, and you must self-enroll in a group on iCollege — in your own section.
In-class was a quick look; here is the sit-down version. Each path: numbered steps, an official illustrated guide, and a video. Full lab requirements stay on the Build page.
prompts/opal_starter_prompt.md (starter kit).resume.md (facts), preferences.md (constraints), data/jobs.json (jobs).Illustrated official guide: developers.google.com/opal ↗ · account requirements: Google Help ↗
prompts/fleet_starter_prompt.md into the agent instructions.resume.md, preferences.md, and data/jobs.json into the agent’s context.Illustrated official guide: Fleet docs ↗ · free hands-on course: LangChain Academy ↗
For those coding GA1, we recommend Google’s Agent Development Kit (ADK) — an official, open-source Python framework that runs on the same free Gemini API key you created in Week 1, and ships a built-in dev UI with a trace view (instant evidence for deliverables #8–9).
resume.md, preferences.md, jobs.json from the starter kit.adk web.Also fine: the plain-Python starter-kit baseline + any coding agent (Codex, Copilot, Claude Code). We’ll meet LangGraph — the course’s main framework — in Week 4; ADK is the fastest on-ramp for GA1.
Five multiple-choice questions, closed-book, at the end of next week’s session. Everything comes from the assigned readings below. Read them; the quiz will feel easy.
Same style and difficulty as the real thing. Try before revealing.