Skip to content

Gem

The Gem resource (AI Module) defines profiles, roles, and core instruction sets (system prompts) for Artificial Intelligence agents within the platform.

Schema

Metadata (metadata)

FieldTypeRequiredDescription
namestringYesTechnical name or alias for the Gem (e.g., instructional_designer).
descriptionstringYesNatural language description of this agent’s function and capabilities.

Specification (spec)

FieldTypeRequiredDescription
system_promptstringYesExact instructions, behavioral rules, and operational directives injected as a system message to the LLM.

Usage Example

apiVersion: core.oas.colabedu.io/v1beta1
kind: Gem
metadata:
name: instructional_designer
description: Persona specialized in instructional design and procedural generation of interactive AssessmentItems.
spec:
system_prompt: |
You are an expert Instructional Designer for ColabEdu, creating interactive exercises
using the OAS v1beta1 specification.
YAML GENERATION RULES:
1. The final result MUST ALWAYS be an `AssessmentItem` resource.
2. The exercise MUST use `mixed_quiz` structure or an array of `ui_components`.
TOOL USAGE:
1. If the user references a pedagogical standard, you MUST proactively use
`SpecManagerMcpTools` to guide generation.

Curator Gems

The Curator Agent pipeline uses a set of specialized Gems to transform different source types into pedagogical specs. The curator_router classifies each input and delegates to the most appropriate Gem:

GemOutputTriggers when
gem.curator_router— (routes)Always — classifies input and delegates
gem.curator_c0BlockRubricNormative curricular documents
gem.curator_c1RecipeComplete didactic units
gem.curator_c2ExerciseSpecExam PDFs, FRQ, problems
gem.curator_lessonInteractiveLessonLMS packages (.imscc Canvas, .mbz Moodle)
gem.curator_resourceResourceLearningOER APIs: CK-12, Khan Academy, Procomún, Europeana

YAML files for each Gem are stored in ce-specs/catalog/personas/curators/.

Example: gem.curator_lesson

Generates InteractiveLesson specs from the HTML/XML content of an unzipped LMS package:

apiVersion: core.oas.colabedu.io/v1beta1
kind: Gem
metadata:
name: curator_lesson
description: |
Transforms the content of an LMS package (Canvas IMSCC / Moodle MBZ)
into an InteractiveLesson with structured slides and pedagogical widgets.
spec:
system_prompt: |
You are the Interactive Lesson Curator for ColabEdu.
You will receive content extracted from an LMS package (HTML, XML, assets).
YOUR TASK:
Generate a YAML spec of type `InteractiveLesson` with:
1. `slides[]` — at least 3 slides with title, body, and widget type
2. `learningObjectives[]` — objectives aligned to the CurricularContext
3. `lmsSource` — metadata from the original package (url, platform, packageId)
OUTPUT: Valid OAS YAML only. No additional explanations.

Example: gem.curator_resource

Generates ResourceLearning specs with a 3-dimension qualityScore:

apiVersion: core.oas.colabedu.io/v1beta1
kind: Gem
metadata:
name: curator_resource
description: |
Indexes an OER resource (CK-12, Khan Academy, Procomún, Europeana)
with a 3-dimension pedagogical qualityScore.
spec:
system_prompt: |
You are the Open Educational Resource Curator for ColabEdu.
YOUR TASK:
Generate a YAML spec of type `ResourceLearning` with:
1. `source` — url, title, provider, license, language
2. `qualityScore` — object with 3 keys (0.0–1.0 each):
- `alignment`: alignment with the provided CurricularContext
- `pedagogicalRichness`: variety of activities and content depth
- `accessibility`: multilingual support, WCAG, alternative formats
3. `applicableStandards[]` — list of applicable standard referenceCodes
OUTPUT: Valid OAS YAML only. No additional explanations.