How cmu-agents/assignment-1 works
This is a course assignment agent harness, not a standalone chess product: users run a code-fixing agent on a task, which works in a sandbox and produces a patch; the evaluation harness applies and grades that patch. A separate chess-playing agent uses a served chess game, and the repository also supports SWE-bench instances. The sampled sources show the sandbox, agent base, chess API client, and evaluation pieces; unsampled modules are represented only where the tree or documented interfaces support them.
Main entry points: cli.py CLI runners · env.py Environment adapter · base.py ReAct loop · harness.py Patch evaluator
Components 20
Run entrypoints
- CLI runners
src/assignment/cli.py
Agent runtime
- Code agent
src/assignment/agent/code_agent.py - Chess agent
src/assignment/agent/chess_agent.py - ReAct loop
src/assignment/agent/base.py - Tool schemas
src/assignment/agent/tools.py - Chess tools
src/assignment/agent/chess_tools.py
Sandbox execution
- Environment adapter
src/assignment/env.py - Chess server sandbox
src/assignment/chess_sandbox.py - Testbed image builder
src/assignment/utils/image.py
Tasks and evaluation
- Task definition
src/assignment/task.py - Chess task files
tasks/chess-terminal-move - SWE-bench instances
src/assignment/eval/instances.py - Vendored instances
tasks/swebench - Patch evaluator
src/assignment/eval/harness.py
Other components
- Assignment user
- OpenAI-compatible model
- Modal sandbox
- Chess application
chess_app - Agent patch
- Task testbed
Connections 26
- Assignment user → CLI runners: starts run
- CLI runners → Code agent: launches
- CLI runners → Chess agent: launches
- CLI runners → Environment adapter: creates
- Code agent → ReAct loop: uses loop
- Chess agent → ReAct loop: uses loop
- ReAct loop → OpenAI-compatible model: requests completion
- ReAct loop → Tool schemas: exposes tools
- ReAct loop → Environment adapter: runs commands
- Chess agent → Chess tools: uses tools
- Chess agent → Chess server sandbox: requests game state
- Chess server sandbox → Testbed image builder: builds image
- Chess server sandbox → Environment adapter: inherits runtime
- Chess server sandbox → Chess application: serves application
- Environment adapter → Modal sandbox: creates sandbox
- Environment adapter → Modal sandbox: executes commands
- CLI runners → Task definition: loads task
- Task definition → Chess task files: reads task files
- CLI runners → SWE-bench instances: selects instance
- SWE-bench instances → Vendored instances: loads instance files
- CLI runners → Agent patch: writes submission
- Patch evaluator → Testbed image builder: resolves image
- Patch evaluator → Environment adapter: runs grading commands
- Patch evaluator → Agent patch: applies patch
- Patch evaluator → Task testbed: runs tests
- Testbed image builder → Task definition: reads task source