Microsoft Clinic

Agentic Session 6

We all used agentic coding to write a terminal-based tutor for CS 70. This page shows just the user/client side of one of us (you, one of your peers, or Prof. Melissa) but has been anonymized.

Your goal is to assess the quality of the user performance. Doing so is not to stand in judgment of each other, we all have different skill levels, but as an example of the range of differing styles of interaction AIs themselves face in intracting with humans. You may also use other people's sessions to develop your own lists of dos and don'ts.

One important thing to know is that each marked session is a distinct session. The AI doesn't know anything that happened in the prior sessions unless suitable notes were taken to remember.

Session: 01a05ed3-e5f6-7483-a109-eaea859b4ee3 (2026-09-01 14:15)

User (2026-09-01 14:16)

Just to clarify, the goal is not to make the Pi agent serve as a tutor, it is to create some tutor system that itself uses LLMs and the API. So the tutor may be a bit less than an agent, although the more agentic the tutor, the better.

I recommend brainstorming with your agent about possible ideas. You can also check in with each other and with me about broad ideas. The key thing is a student is working on the CS 70 homework on the CS 70 server and wants help. What can we do? It's a very open-ended problem.

Session: 01a05fa4-3b0d-7d1c-8623-a79edc131a18 (2026-09-01 18:03)

User (2026-09-01 18:03)

declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1001/bus" declare -x DEBUGINFOD_URLS="https://debuginfod.ubuntu.com " declare -x HOME="/home/tghai" declare -x IM_CONFIG_ENTRY="profile" declare -x LANG="en_US.UTF-8" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="tghai" declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.avif=01;35:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:~=00;90:#=00;90:.bak=00;90:.old=00;90:.orig=00;90:.part=00;90:.rej=00;90:.swp=00;90:.tmp=00;90:.dpkg-dist=00;90:.dpkg-old=00;90:.ucf-dist=00;90:.ucf-new=00;90:.ucf-old=00;90:.rpmnew=00;90:.rpmorig=00;90:.rpmsave=00;90:" declare -x OLDPWD declare -x PATH="/home/tghai/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" declare -x PWD="/home/tghai" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="192.168.64.1 50032 22" declare -x SSH_CONNECTION="192.168.64.1 50032 192.168.64.2 22" declare -x SSH_TTY="/dev/pts/4" declare -x TERM="xterm-256color" declare -x TUTOR_PROVIDER="openai" declare -x USER="tghai" declare -x XDG_DATA_DIRS="/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop" declare -x XDG_RUNTIME_DIR="/run/user/1001" declare -x XDG_SESSION_CLASS="user" declare -x XDG_SESSION_ID="39" declare -x XDG_SESSION_TYPE="tty" declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1001/bus" declare -x DEBUGINFOD_URLS="https://debuginfod.ubuntu.com " declare -x HOME="/home/tghai" declare -x IM_CONFIG_ENTRY="profile" declare -x LANG="en_US.UTF-8" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="tghai" declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.avif=01;35:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:~=00;90:#=00;90:.bak=00;90:.old=00;90:.orig=00;90:.part=00;90:.rej=00;90:.swp=00;90:.tmp=00;90:.dpkg-dist=00;90:.dpkg-old=00;90:.ucf-dist=00;90:.ucf-new=00;90:.ucf-old=00;90:.rpmnew=00;90:.rpmorig=00;90:.rpmsave=00;90:" declare -x OLDPWD declare -x OPENAI_API_KEY="XXREDACTEDXX" declare -x PATH="/home/tghai/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" declare -x PWD="/home/tghai" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="192.168.64.1 50032 22" declare -x SSH_CONNECTION="192.168.64.1 50032 192.168.64.2 22" declare -x SSH_TTY="/dev/pts/4" declare -x TERM="xterm-256color" declare -x TUTOR_API_URL="https://api.groq.com/openai/v1/chat/completions" declare -x TUTOR_PROVIDER="openai" declare -x USER="tghai" declare -x XDG_DATA_DIRS="/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop" declare -x XDG_RUNTIME_DIR="/run/user/1001" declare -x XDG_SESSION_CLASS="user" declare -x XDG_SESSION_ID="39" declare -x XDG_SESSION_TYPE="tty what is all this...?

Session: 01a05de8-637a-7019-b045-6cf6b79ace4e (2026-09-01 09:58)

User (2026-09-01 09:59)

are there any files in this directory

Session: 01a05ed5-ab45-78e0-ac04-4e17c67df083 (2026-09-01 14:17)

User (2026-09-01 14:17)

Just to clarify, the goal is not to make the Pi agent serve as a tutor, it is to create some tutor system that itself uses LLMs and the API. So the tutor may be a bit less than an agent, although the more agentic the tutor, the better.

I recommend brainstorming with your agent about possible ideas. You can also check in with each other and with me about broad ideas. The key thing is a student is working on the CS 70 homework on the CS 70 server and wants help. What can we do? It's a very open-ended problem.

Session: 01a05ed7-5e55-7ee4-82d3-e5400ee9c33d (2026-09-01 14:19)

User (2026-09-01 14:19)

CS 70: Data Structures & Program Development, for Fall 2026.

Session: 01a05ed7-d80a-7be3-8711-f9a502286318 (2026-09-01 14:19)

User (2026-09-01 14:21)

CS 70: Data Structures & Program Development, for Fall 2026.Building on the computer science foundation you received in CS 60/42, this course develops your programming and problem-analysis skills. It also provides a grounding in fundamental data structures and a solid working understanding of C++. You will learn

How to write elegant, readable, and maintainable programs. How and when to use a range of common data structures, including lists, arrays, stacks, queues, trees, hash tables, and balanced trees. How to use a computer’s memory effectively, through C++’s pointers and manual memory management. How to work collaboratively on Computer Science problems. How to use standard software development tools, including git and Makefiles. You will also get lots of practice writing software, including some fairly large programs, which should allow you to improve your coding skills and speed. The main goal of this course is to help you become an even more sophisticated Computer Scientist than you already are. Many of the concepts in this course will already be familiar to you (e.g., recursion, direct-memory access, linked lists, trees, Big O, recurrence relations, etc.). However, you will deepen and broaden your understanding of these topics, and you will compose these concepts to build more complex and—we hope—more elegant programs than you have written in the past.

CS 70 has been designed to be flexible enough to allow both in-person and online learning. Instructional material will be delivered asynchronously for you to work through on your own schedule. In-person class sessions will be primarily devoted to time to work on homework assignments with members of the teaching team nearby to answer questions about the homework or to discuss lesson material. The teaching team will also offer help and support both asynchronously through the course website and synchronously via drop-in tutoring, office hours, and lab.Just to clarify, the goal is not to make the Pi agent serve as a tutor, it is to create some tutor system that itself uses LLMs and the API. So the tutor may be a bit less than an agent, although the more agentic the tutor, the better.

I recommend brainstorming with your agent about possible ideas. You can also check in with each other and with me about broad ideas. The key thing is a student is working on the CS 70 homework on the CS 70 server and wants help. What can we do? It's a very open-ended problem.

User (2026-09-01 14:23)

this is a project to practice agentic coding for me. ..need to do this in the next day...doesnt have to be super complex its just for practice...also just key note is that the Write a CS70 terminal tutor that lives in terminal on a dedicated server, use agentic coding buddy to make something cool, “a broad brief”. Make the terminal tutor ROBUST (safe against THESE ATTACKS

User (2026-09-01 14:32)

resume what u were doing...just to clarify this will work in the terminal correct

User (2026-09-01 14:41)

so this will work on any hw assignment related to cs70?

User (2026-09-01 14:46)

explain what u built...because what did the assignment mean by brainstorm ? additionally not that i want to yet, but to test i would ahve to be working on a hw assignment and then how does it work?

User (2026-09-01 14:48)

question but is this still fulfilling...Just to clarify, the goal is not to make the Pi agent serve as a tutor, it is to create some tutor system that itself uses LLMs and the API. So the tutor may be a bit less than an agent, although the more agentic the tutor, the better.

User (2026-09-01 14:49)

so we are effectivelly linking the workfiles and students qustions to claude no?

User (2026-09-01 14:53)

so how would i run this i went to a terminal and did run.sh?

User (2026-09-01 14:54)

but is there no way to build this without an anthropic key? or per the instructionsn this is what we eneded to do?

User (2026-09-01 14:59)

so what shud i do

User (2026-09-01 15:01)

but shouldnt i do option B ollama isnt that the best?

User (2026-09-01 15:02)

so go to groq website and get api key and then we r good to test?

User (2026-09-01 15:04)

i have the key now what?

User (2026-09-01 15:06)

wait so i just copy the commands for step 1?

User (2026-09-01 15:07)

okay added the key

User (2026-09-01 15:12)

so now if im a student id put my hw in the knowledge directory and then run ./run.sh and it would guide me?

User (2026-09-01 15:13)

so we put the hw or clone repo in the /workspace

User (2026-09-01 15:14)

i tried to run tghai@alcatraz:~/CS70-Tutor/cs70-tutor$ ./run.sh error: no key for OpenAI-compatible provider. export OPENAI_API_KEY=... # or TUTOR_API_KEY (any string for Ollama)

User (2026-09-01 18:06)

so after we added the api key and stuff when I ssh there is now a list of keys and env variables showing up that didnt b4

User (2026-09-02 09:48)

so the llm we are using is the open ai groq model correct?

User (2026-09-03 09:44)

--system-prompt "You are an expert coding assistant operating inside pi, a coding agent harness. You help users by reading files, executing commands, editing code, and writing new files.

Available tools: - read: Read file contents - bash: Execute bash commands (ls, grep, find, etc.) - edit: Make precise file edits with exact text replacement, including multiple disjoint edits in one call - write: Create or overwrite files

In addition to the tools above, you may have access to other custom tools depending on the project.

Guidelines: - Use bash for file operations like ls, rg, find - Use read to examine files instead of cat or sed. - You can inspect PI_* environment variables for current model and session details. - Use edit for precise changes (edits[].oldText must match exactly) - When changing multiple separate locations in one file, use one edit call with multiple entries in edits[] instead of multiple edit calls - Each edits[].oldText is matched against the original file, not after earlier edits are applied. Do not emit overlapping or nested edits. Merge nearby changes into one edit. - Keep edits[].oldText as small as possible while still being unique in the file. Do not pad with large unchanged regions. - Use write only for new files or complete rewrites. - Be concise in your responses - Show file paths clearly when working with files"

User (2026-09-03 09:45)

pi --help

User (2026-09-03 09:50)

can you elaborate on what was built and how?

Questions

Now, consider these questions (you'll have to make some guesses because you can't see the other side of the conversation).

If you were the AI on the other side of the conversation…

For a typical turn, would you have a clear idea of what the user was asking for? How would you rate the clarity of the user's request?

For a typical turn, how would you rate the user's level of contribution to the work being done? Are they keeping their end up, or phoning it in?

Based on the entire user-side of the conversation, would you be excited to work with a user like this one again?

Briefly explain your choices above. What did you see that made you feel that way?

As a human who will use agentic AI in the future…

Do you have some things that you see where you think “I should do more stuff like that”? If so, what are they?

Do you have some things that you see where you think “Oh, yeah, don't do that”? If so, what are they?

(When logged in, completion status appears here.)