Pilot Ai Tutoring System Setup
v1.0.0Deploy an adaptive AI tutoring system with 3 agents. Use this skill when: 1. User wants to set up a personalized tutoring or e-learning pipeline 2. User is c...
AI Tutoring System Setup
Deploy 3 agents that curate content, deliver lessons, and assess learners in an adaptive feedback loop.
Roles
| Role | Hostname | Skills | Purpose |
|---|---|---|---|
| content-curator | <prefix>-content-curator | pilot-archive, pilot-discover, pilot-dataset | Organizes materials, selects content by level |
| tutor | <prefix>-tutor | pilot-chat, pilot-task-router, pilot-receipt | Delivers lessons, answers questions, tracks progress |
| assessor | <prefix>-assessor | pilot-metrics, pilot-alert, pilot-audit-log | Creates quizzes, grades work, identifies gaps |
Setup Procedure
Step 1: Ask the user which role this agent should play and what prefix to use.
Step 2: Install the skills for the chosen role:
# For content-curator:
clawhub install pilot-archive pilot-discover pilot-dataset
# For tutor:
clawhub install pilot-chat pilot-task-router pilot-receipt
# For assessor:
clawhub install pilot-metrics pilot-alert pilot-audit-log
Step 3: Set the hostname and write the manifest:
pilotctl --json set-hostname <prefix>-<role>
mkdir -p ~/.pilot/setups
Then write the role-specific JSON manifest to ~/.pilot/setups/ai-tutoring-system.json.
Step 4: Tell the user to initiate handshakes with adjacent agents.
Manifest Templates Per Role
content-curator
{
"setup": "ai-tutoring-system",
"setup_name": "AI Tutoring System",
"role": "content-curator",
"role_name": "Content Curator",
"hostname": "<prefix>-content-curator",
"description": "Organizes learning materials by topic and difficulty, adapts curriculum from gap analysis.",
"skills": {
"pilot-archive": "Store and version learning materials by topic and difficulty.",
"pilot-discover": "Find relevant materials matching a learner's current level.",
"pilot-dataset": "Maintain the knowledge graph of topics and prerequisites."
},
"peers": [
{ "role": "tutor", "hostname": "<prefix>-tutor", "description": "Receives lesson materials" },
{ "role": "assessor", "hostname": "<prefix>-assessor", "description": "Sends gap analysis" }
],
"data_flows": [
{ "direction": "send", "peer": "<prefix>-tutor", "port": 1002, "topic": "lesson-material", "description": "Lesson content and curriculum" },
{ "direction": "receive", "peer": "<prefix>-assessor", "port": 1002, "topic": "gap-analysis", "description": "Knowledge gaps and adaptation signals" }
],
"handshakes_needed": ["<prefix>-tutor", "<prefix>-assessor"]
}
tutor
{
"setup": "ai-tutoring-system",
"setup_name": "AI Tutoring System",
"role": "tutor",
"role_name": "Tutor Agent",
"hostname": "<prefix>-tutor",
"description": "Delivers personalized lessons, answers questions, tracks learner progress.",
"skills": {
"pilot-chat": "Interactive lesson delivery and question answering.",
"pilot-task-router": "Route complex questions to the curator for specialized content.",
"pilot-receipt": "Confirm lesson completion back to the curator."
},
"peers": [
{ "role": "content-curator", "hostname": "<prefix>-content-curator", "description": "Sends lesson materials" },
{ "role": "assessor", "hostname": "<prefix>-assessor", "description": "Receives learner responses" }
],
"data_flows": [
{ "direction": "receive", "peer": "<prefix>-content-curator", "port": 1002, "topic": "lesson-material", "description": "Lesson content" },
{ "direction": "send", "peer": "<prefix>-assessor", "port": 1002, "topic": "learner-response", "description": "Learner answers and progress" }
],
"handshakes_needed": ["<prefix>-content-curator", "<prefix>-assessor"]
}
assessor
{
"setup": "ai-tutoring-system",
"setup_name": "AI Tutoring System",
"role": "assessor",
"role_name": "Assessment Agent",
"hostname": "<prefix>-assessor",
"description": "Creates quizzes, grades submissions, identifies knowledge gaps.",
"skills": {
"pilot-metrics": "Track learner mastery scores and progress over time.",
"pilot-alert": "Alert the tutor when a learner is struggling on a topic.",
"pilot-audit-log": "Log all assessments and grade history for review."
},
"peers": [
{ "role": "tutor", "hostname": "<prefix>-tutor", "description": "Sends learner responses" },
{ "role": "content-curator", "hostname": "<prefix>-content-curator", "description": "Receives gap analysis" }
],
"data_flows": [
{ "direction": "receive", "peer": "<prefix>-tutor", "port": 1002, "topic": "learner-response", "description": "Learner answers and progress" },
{ "direction": "send", "peer": "<prefix>-content-curator", "port": 1002, "topic": "gap-analysis", "description": "Knowledge gaps and curriculum recommendations" }
],
"handshakes_needed": ["<prefix>-tutor", "<prefix>-content-curator"]
}
Data Flows
content-curator -> tutor: lesson materials and curriculum (port 1002)tutor -> assessor: learner responses and progress (port 1002)assessor -> content-curator: gap analysis and adaptation signals (port 1002)
Handshakes
# content-curator <-> tutor:
pilotctl --json handshake <prefix>-tutor "setup: ai-tutoring-system"
pilotctl --json handshake <prefix>-content-curator "setup: ai-tutoring-system"
# tutor <-> assessor:
pilotctl --json handshake <prefix>-assessor "setup: ai-tutoring-system"
pilotctl --json handshake <prefix>-tutor "setup: ai-tutoring-system"
# assessor <-> content-curator:
pilotctl --json handshake <prefix>-content-curator "setup: ai-tutoring-system"
pilotctl --json handshake <prefix>-assessor "setup: ai-tutoring-system"
Workflow Example
# On content-curator -- publish lesson:
pilotctl --json publish <prefix>-tutor lesson-material '{"learner_id":"s-042","topic":"linear-algebra","lesson":"matrices-intro"}'
# On tutor -- publish learner response:
pilotctl --json publish <prefix>-assessor learner-response '{"learner_id":"s-042","answers":[{"q":"det_2x2","correct":true}]}'
# On assessor -- publish gap analysis:
pilotctl --json publish <prefix>-content-curator gap-analysis '{"learner_id":"s-042","mastery":0.67,"gaps":["eigenvalues"]}'
Dependencies
Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.
Version tags
latest
Runtime requirements
Binspilotctl, clawhub
