A1: Read a coding-agent session
At a glance
- Task: capture one real coding-agent session, force one safe failure, and label what you observed or inferred.
- Week: 1
- Weight: 2.5 points
- Due: Sunday 23:59 in the listed week
- Hand in: one
report.jsonand the session excerpt or redacted transcript it cites. - Done when: every behaviour is labelled observed or inferred and points to an excerpt or command output, and the forced failure is real and explained.
check.pythen confirms the shape of the record only. - Time: published after a timed pilot; record your prediction and actual time.
Objectives
Explain an agent's system instructions, tools, loop and stopping condition (LO1). Separate a line visible in the session from an explanation you infer from it.
Prerequisites
Follow the safety practices in syllabus §9:
- Run the agent in a dedicated directory or container.
- Keep residency, employer and cloud credentials out of that environment.
- Keep keys out of repositories, prompts, screenshots and logs.
- Run injection demonstrations offline against the local machine only.
Use the mature coding-agent seat supplied for the course. Do not run an unknown generated command on a credential-bearing host.
Tasks
- Predict. Before starting, write which request, tool call or stop condition you expect to be easy to misread.
- Generate. Ask the agent to make a tiny, reversible change in a disposable repository. Keep the visible request, system or configuration summary, tool calls and stop message.
- Verify. Run the repository check yourself and save its output. Label each behaviour
observedorinferred, with an evidence ID. - Force failure. Change one safe input or deny one permission so the agent receives a real failure. Do not fabricate an error. Record the recovery or the reason it stopped.
- Revise. After feedback from a peer or the teaching team during the assignment week, correct one label or explanation. Record who gave it and the date in your explanation; if no feedback was available, record your self-review date and finish the decision line.
Generation is the agent's proposed change; verification is your command output and file inspection. The supplied check.py checks the record shape only, so read every cited file yourself.
Deliverables
Copy starter/report.json to report.json. Include the redacted session excerpt, the forced-failure output, and one AI-use note ID. Keep only task-relevant lines; remove keys, personal data and unrelated source.
The report must include assignment, session_kind: "real", an agent description, behaviour rows, a forced-failure record, evidence rows, an explanation and a decision. Run:
python practice/a1/check.py path/to/submission
Grading
The published criteria are: accurate observed/inferred labels; a genuine, reproducible failure and honest recovery or stop explanation; evidence that another reader can inspect; and a useful revision. The local check gives public feedback and does not assign marks or certify a real session.
AI use rules
Green: the agent may propose the disposable change and help format notes. Yellow: you may ask it to suggest labels, then verify every suggestion yourself. Red: the prediction, observed/inferred labels, failure interpretation and decision must be your own. Attach one AI-use note ID.
Estimated time
Published after a timed pilot. Record predicted and actual time in the report; ask for help if the safety boundary or failure cannot be reproduced.
Work record outline
A1 report
session_kind: real
agent: TODO
evidence: [{id: TODO, path: TODO, observation: TODO}]
behaviours: [{behaviour: TODO, label: observed|inferred, evidence: [TODO]}]
forced_failure: {intervention: TODO, evidence: [TODO], recovery_or_stop: TODO}
explanation: TODO
ai_use_note: TODO
decision: accept | narrow | recheck | stop
because: evidence ID(s)
next: TODO