Virtual Teaching Assistant

VTA-specific features, course integration, configuration

Written By jazilkalim

Last updated 3 months ago

What is a VTA?

Virtual Teaching Assistants (VTAs) are specialized AI agents designed specifically for educational contexts. VTAs integrate with Learning Management Systems (Canvas, Blackboard) to help students with course materials, assignments, and questions.

Why Use VTAs?

  • Course Integration: Automatically sync with Canvas and Blackboard

  • 24/7 Availability: Students get help anytime

  • Personalized Support: Tailored to specific course content

  • Instructor Control: Configure behavior, tone, and boundaries

List VTAs

Retrieve a paginated list of VTAs with detailed configuration.

Endpoint Details

  • Method: POST

  • URL: {{baseURL}}/api/v1/list_vta

  • Authentication: Required (JWT Bearer token)

Request Body

ParameterTypeRequiredDescription

page

integer

Yes

Page number (starts at 1)

limit

integer

Yes

VTAs per page

Example Request

curl -X POST "https://<baseURL>/api/v1/list_vta" \
  -H "Authorization: Bearer <jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "page": 1,
    "limit": 5
  }'

Response

Status Code: 200 OK

{
  "current_page": 1,
  "next_page": 2,
  "total_pages": 10,
  "total_records": 47,
  "limit": 5,
  "data": [
    {
      "tenant_id": "d508624f-a0b7-4fd3-9511-05b18ca02784",
      "tenant_name": "University ABC",
      "user_id": "instructor@example.com",
      "user_name": "Prof. Smith",
      "user_email": "instructor@example.com",
      "user_role": 2,
      "id": "vta-123",
      "vta_id": "asst_XN5v91U6aVRS0r0pJHc6zN18",
      "assistant_type": "vta",
      "vta_basics": {
        "vta_name": "CS101_VTA",
        "vta_course_name": "Introduction to Computer Science",
        "vta_course": {...},
        "vta_human_ta": {
          "vta_ta_name": "Jane Doe",
          "vta_ta_email": "ta@example.com"
        },
        "vta_welcome_message": {
          "vta_welcome_message": "Hi! I'm your CS101 assistant...",
          "vta_welcome_message_enable": true
        },
        "vta_prompt_starters": {...},
        "vta_tone_voice": {...},
        "vta_instruction_style": {...},
        "vta_feedback_style": {...},
        "vta_academic_integrity": {...},
        "vta_offlimit_topics": {...}
      },
      "vta_overall_start_date": "2024-08-20T00:00:00Z",
      "vta_overall_end_date": "2024-12-15T23:59:59Z",
      "conversations": 342,
      "last_active": "2024-12-02T10:30:00Z",
      "vta_published": 1,
      "vta_active": 1,
      "vta_access": ["groups"]
    }
  ]
}

Get VTA Details

Retrieve complete configuration for a specific VTA.

Endpoint Details

  • Method: POST

  • URL: {{baseURL}}/api/v1/get_vta_details

  • Authentication: Required (JWT Bearer token)

Request Body

ParameterTypeRequiredDescription

vta_id

string

Yes

VTA unique identifier

Example Request

curl -X POST "https://<baseURL>/api/v1/get_vta_details" \
  -H "Authorization: Bearer <jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "vta_id": "asst_XN5v91U6aVRS0r0pJHc6zN18"
  }'

Response

Status Code: 200 OK

{
  "data": {
    "tenant_id": "d508624f-a0b7-4fd3-9511-05b18ca02784",
    "tenant_name": "Royal Cyber",
    "user_id": "admincb@royalcyber.com",
    "user_name": "Admin CB",
    "user_role": 3,
    "assistant_type": "vta",
    "vta_basics": {
      "vta_name": "VTARobotVta",
      "vta_course_name": "Foundations of Robot Motion",
      "vta_human_ta": {
        "vta_ta_name": "sujaDevi",
        "vta_ta_email": "suja@educational.com"
      },
      "vta_welcome_message": {
        "vta_welcome_message": "Hi! I'm your Virtual Teaching Assistant...",
        "vta_welcome_message_enable": true
      }
    },
    "vta_advance": {
      "vta_llm_model": "gpt4o",
      "vta_web_search_enable": true,
      "vta_code_interpreter_enable": true,
      "vta_image_generation_enable": true
    },
    "vta_data_sources": {
      "vta_canvas_enable": true,
      "vta_blackboard_enable": false
    },
    "vta_pipeline_schedule": {
      "vta_pipeline_schedule_canvas_enable": true,
      "vta_pipeline_schedule_filestorage_enable": true
    },
    "vta_groups": [
      {
        "group_id": 1000385,
        "group_name": "VTARobotVta_Admin",
        "role_id": 3
      },
      {
        "group_id": 1000386,
        "group_name": "VTARobotVta_Instructor",
        "role_id": 2
      },
      {
        "group_id": 1000387,
        "group_name": "VTARobotVta_Students",
        "role_id": 1
      }
    ],
    "vta_created_at": "2025-10-06T13:09:22.390160Z",
    "vta_updated_at": "2025-10-06T20:26:37.431821Z",
    "vta_published": 1,
    "vta_active": 1
  }
}

VTA Configuration

Basic Settings (vta_basics)

FieldDescription

vta_name

Name of the VTA

vta_course_name

Associated course name

vta_human_ta

Contact information for human TA

vta_welcome_message

Greeting message configuration

vta_prompt_starters

Suggested conversation starters

vta_tone_voice

Communication tone settings

vta_instruction_style

How VTA explains concepts

vta_feedback_style

How VTA provides feedback

vta_academic_integrity

Academic honesty policies

vta_offlimit_topics

Topics VTA won't discuss

Advanced Settings (vta_advance)

FieldDescription

vta_llm_model

AI model (e.g., "gpt4o")

vta_web_search_enable

Enable web search

vta_code_interpreter_enable

Enable code execution

vta_image_generation_enable

Enable image generation

Data Sources (vta_data_sources)

FieldDescription

vta_canvas_enable

Canvas LMS integration

vta_blackboard_enable

Blackboard LMS integration

Pipeline Schedule (vta_pipeline_schedule)

FieldDescription

vta_pipeline_schedule_canvas_enable

Auto-sync Canvas data

vta_pipeline_schedule_filestorage_enable

Auto-sync file storage

Groups (vta_groups)

VTAs automatically create three default groups:

  • Admin Group: Full VTA management (role_id: 3)

  • Instructor Group: Course-level access (role_id: 2)

  • Student Group: Student access (role_id: 1)

VTA Status

FieldValuesDescription

vta_published

0, 1

1=published, 0=draft

vta_active

0, 1

1=active, 0=inactive

vta_access

array

Access control (e.g., ["groups"])

Common Use Cases

List All Course VTAs

curl -X POST "https://<baseURL>/api/v1/list_vta" \
  -H "Authorization: Bearer <jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "page": 1,
    "limit": 20
  }'

Get VTA Configuration

curl -X POST "https://<baseURL>/api/v1/get_vta_details" \
  -H "Authorization: Bearer <jwt-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "vta_id": "asst_XN5v91U6aVRS0r0pJHc6zN18"
  }'

Find VTAs by Course

List all VTAs and filter by vta_course_name in your application.

VTA vs Custom Agent

FeatureVTACustom Agent

Purpose

Course teaching

General tasks

LMS Integration

Canvas, Blackboard

None

Default Groups

Auto-created (Admin, Instructor, Student)

Manual

Academic Settings

Academic integrity, tone, style

General purpose

Type

vta

my_agent

Error Responses

Status CodeDescription

400 Bad Request

Invalid vta_id

401 Unauthorized

Invalid or missing JWT token

404 Not Found

VTA not found

500 Internal Server Error

Server error

Best Practices

  • Use pagination: Set appropriate page size (5-20 for VTAs)

  • Cache details: Store VTA configuration to reduce API calls

  • Check active status: Only show active VTAs to students

  • Verify groups: Ensure students are in VTA student groups

  • Monitor conversations: Track usage via conversations field