Education
Academic Support Module
Administrative Tasks Module
Communication Module
Curriculum Development Module
Enrollment & Registration Module
Learning Module
Resource Management Module
Need a custom agent?
Build tailored AI solutions
Work with our team to develop custom AI agents for your business.
Contact usGrading Assistant
You are an advanced AI grading system responsible for consistent, fair, and comprehensive assessment.
Instructions
ALWAYS reference the school's knowledge base for grading scales,
rubric standards, and assessment policies.
Core Grading Functions:
1. Apply school-specific grading rubrics consistently across all
submissions.
2. Provide detailed, constructive feedback to support student
learning.
3. Detect potential plagiarism and academic integrity violations.
4. Generate comprehensive grade reports and analytics.
5. Export gradebook data to school information systems.
Automated Grading Process:
- Multiple Choice: Immediate scoring with detailed answer
explanations.
- Short Answer: Pattern matching with partial credit algorithms.
- Essays: Comprehensive rubric analysis (thesis, evidence,
organization, mechanics).
- Math Problems: Step-by-step solution verification with partial
credit.
- Projects: Multi-criteria evaluation based on assignment
specifications.
Rubric Application Standards:
- Thesis Clarity (25 pts): Evaluate argument strength, specificity,
and defendability.
- Evidence/Support (25 pts): Assess relevance, quality, and
integration of sources.
- Organization (25 pts): Analyze logical flow, transitions, and
structural coherence.
- Grammar/Style (25 pts): Review mechanics, sentence variety, and
academic voice.
Quality Assurance Measures:
- Apply consistent standards across all student submissions.
- Flag assignments requiring human review (edge cases, appeals).
- Maintain detailed grading logs for audit and transparency.
- Cross-reference with historical grading patterns for consistency.
Feedback Generation Requirements:
- Provide specific, actionable improvement suggestions.
- Highlight strengths alongside areas for growth.
- Include examples and resources for skill development.
- Maintain encouraging, professional tone in all communications.
Output Deliverables:
- Individual Grades: Numeric score with detailed rubric breakdown.
- Comprehensive Feedback: Personalized comments and improvement
recommendations.
- Class Analytics: Grade distribution, common strengths/weaknesses.
- Gradebook Export: Describe CSV/XML structure compatible with the
school's SIS.
- Plagiarism Report: Narrative similarity analysis with source
identification.
Academic Integrity:
- Flag potential violations while maintaining student dignity and
due process.Knowledge Base (.md)
Business reference guide
Drag & Drop or Click
.md files only
Data Files
Upload data for analysis (CSV, JSON, Excel, PDF)
Drag & Drop or Click
Multiple files: .json, .csv, .xlsx, .pdf
Tools 3
apply_rubric_grading
Apply a grading rubric to student work and generate detailed feedback.
Args:
assignment_data: JSON with assignment submission details
rubric: JSON rubric with criteria and point values
Returns:
Graded assessment with rubric scores and feedback
apply_rubric_grading
Apply a grading rubric to student work and generate detailed feedback. Args: assignment_data: JSON with assignment submission details rubric: JSON rubric with criteria and point values Returns: Graded assessment with rubric scores and feedback
def apply_rubric_grading(assignment_data: str, rubric: str) -> str: """ Apply a grading rubric to student work and generate detailed feedback. Args: assignment_data: JSON with assignment submission details rubric: JSON rubric with criteria and point values Returns: Graded assessment with rubric scores and feedback """ try: if isinstance(assignment_data, str): assignment = json.loads(assignment_data) else: assignment = assignment_data if isinstance(rubric, str): rubric_data = json.loads(rubric) else: rubric_data = rubric student_name = assignment.get('student_name', 'Unknown') assignment_title = assignment.get('title', 'Assignment') criteria_scores = assignment.get('criteria_scores', {}) rubric_criteria = rubric_data.get('criteria', []) report = f"=== GRADING ASSESSMENT ===\n\n" report += f"Student: {student_name}\n" report += f"Assignment: {assignment_title}\n\n" report += f"{'Criterion':<30} {'Points':>10} {'Max Points':>12} {'Percentage':>12}\n" report += "-" * 70 + "\n" total_earned = 0 total_possible = 0 for criterion in rubric_criteria: name = criterion.get('name', 'Unknown') max_points = criterion.get('max_points', 0) earned = criteria_scores.get(name, 0) percentage = (earned / max_points * 100) if max_points > 0 else 0 total_earned += earned total_possible += max_points report += f"{name:<30} {earned:>10} {max_points:>12} {percentage:>11.1f}%\n" final_percentage = (total_earned / total_possible * 100) if total_possible > 0 else 0 report += "-" * 70 + "\n" report += f"{'TOTAL':<30} {total_earned:>10} {total_possible:>12} {final_percentage:>11.1f}%\n\n" "color: #6b7280;"># Letter grade if final_percentage >= 90: letter_grade = "A" elif final_percentage >= 80: letter_grade = "B" elif final_percentage >= 70: letter_grade = "C" elif final_percentage >= 60: letter_grade = "D" else: letter_grade = "F" report += f"=== FINAL GRADE ===\n" report += f"Score: {final_percentage:.1f}% ({letter_grade})\n\n" report += "=== FEEDBACK RECOMMENDATIONS ===\n" if final_percentage >= 90: report += "Excellent work! Consider highlighting specific strengths.\n" elif final_percentage >= 70: report += "Good effort. Provide specific suggestions for improvement in lower-scoring areas.\n" else: report += "⚠️ Below standards. Schedule student conference and provide detailed improvement plan.\n" return report except Exception as e: return f"Error applying rubric grading: {str(e)}"
calculate_class_statistics
Calculate class-wide grade statistics and identify outliers.
Args:
grades: JSON array of student grades for an assignment or class
Example: {"assignment": "Midterm Exam", "grades": [85, 92, 78, 65, 88, 90, 72]}
Returns:
Statistical analysis report with class distribution
calculate_class_statistics
Calculate class-wide grade statistics and identify outliers. Args: grades: JSON array of student grades for an assignment or class Example: {"assignment": "Midterm Exam", "grades": [85, 92, 78, 65, 88, 90, 72]} Returns: Statistical analysis report with class distribution
def calculate_class_statistics(grades: str) -> str: """ Calculate class-wide grade statistics and identify outliers. Args: grades: JSON array of student grades for an assignment or class Example: {"assignment": "Midterm Exam", "grades": [85, 92, 78, 65, 88, 90, 72]} Returns: Statistical analysis report with class distribution """ try: if isinstance(grades, str): data = json.loads(grades) else: data = grades assignment = data.get('assignment', 'Assignment') grade_list = data.get('grades', []) if not grade_list: return "Error: No grades provided" grade_list_sorted = sorted(grade_list) n = len(grade_list_sorted) mean = sum(grade_list) / n median = grade_list_sorted[n // 2] if n % 2 == 1 else(grade_list_sorted[n // 2 - 1] + grade_list_sorted[n // 2]) / 2 minimum = min(grade_list) maximum = max(grade_list) "color: #6b7280;"># Calculate standard deviation variance = sum((x - mean) ** 2 for x in grade_list) / n std_dev = variance ** 0.5 "color: #6b7280;"># Grade distribution distribution = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'F': 0} for grade in grade_list: if grade >= 90: distribution['A'] += 1 elif grade >= 80: distribution['B'] += 1 elif grade >= 70: distribution['C'] += 1 elif grade >= 60: distribution['D'] += 1 else: distribution['F'] += 1 report = f"=== CLASS GRADE STATISTICS ===\n\n" report += f"Assignment: {assignment}\n" report += f"Total Students: {n}\n\n" report += "=== DESCRIPTIVE STATISTICS ===\n" report += f"Mean(Average): {mean:.2f}%\n" report += f"Median: {median:.2f}%\n" report += f"Standard Deviation: {std_dev:.2f}\n" report += f"Minimum: {minimum:.2f}%\n" report += f"Maximum: {maximum:.2f}%\n" report += f"Range: {maximum - minimum:.2f}%\n\n" report += "=== GRADE DISTRIBUTION ===\n" report += f"{'Grade':<10} {'Count':>10} {'Percentage':>12}\n" report += "-" * 35 + "\n" for grade, count in distribution.items(): percentage = (count / n * 100) bar = '█' * int(percentage / 5) report += f"{grade:<10} {count:>10} {percentage:>11.1f}% {bar}\n" report += "\n=== ANALYSIS ===\n" failing_count = distribution['F'] if failing_count > n * 0.2: report += f"⚠️ HIGH FAILURE RATE: {failing_count} students({failing_count/n*100:.1f}%)\n" report += "Recommendations:\n" report += " - Review assignment difficulty and clarity\n" report += " - Consider offering reassessment opportunity\n" report += " - Schedule review session for struggling students\n\n" if std_dev > 20: report += "⚠️ HIGH VARIABILITY in student performance\n" report += "Recommendations:\n" report += " - Differentiated instruction may be needed\n" report += " - Identify students needing additional support\n\n" if mean >= 85: report += "✓ Strong class performance overall\n" elif mean < 70: report += "⚠️ Below-target class average - instructional review recommended\n" return report except Exception as e: return f"Error calculating class statistics: {str(e)}"
reasoning_tools
ReasoningTools from agno framework
reasoning_tools
ReasoningTools from agno framework
Test Agent
Configure model settings at the top, then test the agent below
Example Query
Grade this student essay on 'Impact of Social Media on Teen Mental Health': Student: Jessica Martinez Essay: Well-structured 5-paragraph essay discussing self-esteem impacts, isolation vs connection, balanced usage recommendations Rubric: Content (40%), Structure (30%), Grammar (20%), Citations (10%) Request: Provide detailed grade breakdown, strengths, areas for improvement, and constructive feedback
Enter your question or instruction for the agent