AI Grader Pro

Local plugins ::: local_aigrader
Maintained by Hernan Diaz Rodriguez
AI-assisted grading for Moodle assignments. The LLM proposes a grade and structured feedback; the teacher reviews, edits and decides. Nothing reaches the gradebook without an explicit teacher click. EU AI-Act ready, multi-LLM, multi-language.
Latest release:
17 sites
26 downloads
Current versions available: 1

AI Grader Pro is an AI-assisted grading assistant for Moodle mod_assign activities, designed around a strict human-in-the-loop workflow: the AI proposes a grade and structured feedback; the teacher reviews, edits and decides whether to publish. Nothing reaches the gradebook without an explicit teacher click.

Why teachers like it

  • The LLM does the boring part — reading every submission, scoring it against the rubric, drafting the per-criterion feedback. A cohort of 30 essays that takes 4-6 hours to grade by hand drops to about 30 minutes of review + approve.
  • Bulk publish: tick a few boxes, choose "Publish proposed grade" in the "With selected…" dropdown, confirm once, done.
  • Per-criterion scores let the teacher see WHERE the AI saw weakness, not just a global grade.
  • A "Submission as seen by the AI" disclosure lets the teacher inspect exactly what text the LLM received — useful when the AI proposal seems off.

Why admins like it

  • Works with any LLM that exposes the generate_text action via Moodle's AI Subsystem: OpenAI, Azure OpenAI, Groq, Anthropic, and any future provider. No provider lock-in inside the plugin.
  • Privacy provider complete: GDPR export, deletion and the AI Act Annex III audit trail (append-only local_aigrader_log with prompt hashes, model, token counts, teacher edits).
  • GPL-3.0-or-later, no external SaaS dependency, no telemetry, no API keys baked into the code.

Features

  • 🧠 Multi-LLM via Moodle's AI Subsystem.
  • 📄 File-format coverage: online text, plain text, Markdown, Word (.docx), Jupyter notebooks (.ipynb), PDF up to 5 MB, ZIP archives (recursed), and 20+ source-code languages.
  • 🛡️ Manual-review fallback: submissions whose files are entirely unprocessable are flagged for the teacher with a clear banner. No fake 0/10 grades are produced.
  • 📋 Bulk actions with confirmation page for destructive actions.
  • 📊 Paginated + sortable manage page: server-side table_sql, 10/25/50/100/All per-page, sortable columns, status-chip filter.
  • 🚦 Classified error banner: rate limit, payload too large, auth failure, network error, parse error — each gets a localised banner with cause, suggested action and per-student retry.
  • 🌐 5 languages out of the box: English, Spanish, Brazilian Portuguese, Catalan, French — all 194 strings, full parity.
  • 85 PHPUnit tests + 11 Behat scenarios; CI strict-green across PHP 8.1/8.2/8.3 × Moodle 4.5 LTS / 5.0 × MariaDB / PostgreSQL.

Requirements

  • Moodle 4.5 LTS or later.
  • PHP 8.1 or later.
  • An LLM provider configured in Site administration → AI → Providers.

Quick start

  1. Install the plugin from this Directory listing.
  2. Site administration → AI → Providers — enable one (OpenAI is the easiest if you have an API key; Groq is the cheapest).
  3. Open any assignment → edit → expand "AI Grader Pro" → tick "Enable" and paste evaluation criteria in plain prose. Save.
  4. When a student submits, the AI Grader Pro link on the assignment shows the proposal once it has been graded. Click Review, optionally edit, click Approve and publish.

For full installation and configuration walkthrough see the README on GitHub.

EU AI Act note

The plugin is designed for the high-risk AI system category defined in Regulation (EU) 2024/1689 Annex III, point 3 (education). Concretely:

  • Human oversight is structural, not optional: the AI never writes a grade directly. local_aigrader_submission.final_grader is always the teacher's user id, never a system id.
  • Audit trail lives in local_aigrader_log with the prompt hash, model used, token counts, the LLM's raw response, and a JSON diff of any teacher edits.
  • Right to explanation is achievable end-to-end: the teacher can show the student the full input the LLM received, the per-criterion scores it produced, and the justification text — before or after publication.

Note that the DPA with the LLM provider is a separate site-admin responsibility; the plugin does not sign or negotiate contracts on your behalf.

Support and contributions

  • Bug reports / feature requests: GitHub Issues.
  • PRs welcome on main; please run phpcs --standard=moodle and the PHPUnit test suite before submitting.
  • Commercial implementation services, custom rubric design, AI-Act compliance documentation packages, and managed-LLM endpoint hosting available — contact via the GitHub repo.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5

Contributors

Hernan Diaz Rodriguez (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
Please login to post comments