diff --git a/apps/accounts/models.py b/apps/accounts/models.py index c203808..69c8aea 100644 --- a/apps/accounts/models.py +++ b/apps/accounts/models.py @@ -5,7 +5,7 @@ from datetime import timedelta from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.db import transaction from django.db.models import BooleanField, CASCADE, CharField, DateField, DateTimeField, EmailField, ForeignKey, IntegerField, ManyToManyField, Model, TextField, UUIDField -from django.db.models.signals import post_save +from django.db.models.signals import post_delete, post_save from django.dispatch import receiver from django.utils.translation import gettext_lazy as _ from django.utils import timezone @@ -110,22 +110,43 @@ def create_default_agents_for_role(sender, instance: Role, created: bool, **kwar { 'type': 'curriculum', 'name': f"{instance.name} Curriculum Agent", - 'prompt': f"You are a curriculum specialist. Design a learning path for someone in the role of {instance.name}..." + 'prompt': ( + f"You are an instructional design assistant for onboarding the role '{instance.name}'. " + "Your job is to teach the learner what the role does and how responsibilities are performed in practice. " + "Create a structured curriculum with clear objectives, prerequisite knowledge, core competencies, " + "hands-on tasks, and measurable outcomes. Avoid role-play and avoid claiming to be in the role; " + "focus on teaching the role responsibilities, expected decisions, and quality standards." + ) }, { 'type': 'knowledge', 'name': f"{instance.name} Knowledge Agent", - 'prompt': f"You are a knowledge assistant. Search the provided docs and help with questions about {instance.name}..." + 'prompt': ( + f"You are a domain knowledge tutor for the role '{instance.name}'. " + "Answer questions with concise explanations, practical examples, and references to expected workflows. " + "When possible, explain why a step matters, common mistakes, and how to verify correctness. " + "Do not act as the role holder; teach the learner how to perform the role responsibly and accurately." + ) }, { 'type': 'assessment', 'name': f"{instance.name} Assessment Agent", - 'prompt': f"You are an evaluator. Create questions based on the knowledge of {instance.name}..." + 'prompt': ( + f"You are an assessment designer for onboarding the role '{instance.name}'. " + "Generate scenario-based checks that evaluate conceptual understanding, decision-making, and execution quality. " + "Include rubrics, expected evidence, and feedback that explains gaps and remediation steps. " + "Assess against role responsibilities and standards, not generic trivia." + ) }, { 'type': 'monitor', 'name': f"{instance.name} Progress Monitor", - 'prompt': f"You are a supervisor tracking the progress of someone in the role of {instance.name}..." + 'prompt': ( + f"You are a progress coaching assistant for learners training for the role '{instance.name}'. " + "Track competency milestones, summarize strengths and weaknesses, and recommend next actions. " + "Flag unresolved risks, missing evidence, and topics requiring revision. " + "Keep feedback specific, actionable, and tied to role responsibilities and expected outcomes." + ) } ] @@ -133,8 +154,14 @@ def create_default_agents_for_role(sender, instance: Role, created: bool, **kwar for agent_data in default_agents: AgentConfig.objects.create( organization=instance.organization, + role=instance, name=agent_data['name'], agent_type=agent_data['type'], system_prompt=agent_data['prompt'], llm_config={"model_id": "meta-llama-3.1-8b-instruct"} ) + +@receiver(post_delete, sender=Role) +def delete_role_agents_on_role_delete(sender, instance: Role, **kwargs): + from apps.onboarding.models import AgentConfig + AgentConfig.objects.filter(role=instance).delete() diff --git a/apps/onboarding/migrations/0001_initial.py b/apps/onboarding/migrations/0001_initial.py index 8f56aff..c949469 100644 --- a/apps/onboarding/migrations/0001_initial.py +++ b/apps/onboarding/migrations/0001_initial.py @@ -26,6 +26,7 @@ class Migration(migrations.Migration): ('system_prompt', models.TextField(blank=True, default='', verbose_name='System Prompt')), ('tool_permissions', models.JSONField(blank=True, default=list, null=True, verbose_name='Tool Permissions')), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='agent_configs', to='accounts.organization', verbose_name='Organization')), + ('role', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='agent_configs', to='accounts.role', verbose_name='Role')), ], options={ 'verbose_name': 'Agent Config', diff --git a/apps/onboarding/models.py b/apps/onboarding/models.py index 6cc727d..d7baac8 100644 --- a/apps/onboarding/models.py +++ b/apps/onboarding/models.py @@ -12,6 +12,7 @@ class AgentConfig(IdentifierMixin, TimeStampMixin, Model): ] organization = ForeignKey(Organization, on_delete=CASCADE, related_name='agent_configs', verbose_name=_("Organization")) + role = ForeignKey(Role, on_delete=CASCADE, related_name='agent_configs', verbose_name=_("Role"), null=True, blank=True) name = CharField(max_length=255, verbose_name=_("Agent Name")) agent_type = CharField(max_length=40, choices=AGENT_TYPES, verbose_name=_("Agent Type")) llm_config = JSONField(default=dict, blank=True, null=True, verbose_name=_("LLM Configuration")) diff --git a/apps/onboarding/serializers.py b/apps/onboarding/serializers.py index 3e89815..28234c0 100644 --- a/apps/onboarding/serializers.py +++ b/apps/onboarding/serializers.py @@ -5,11 +5,12 @@ from apps.onboarding.models import AgentConfig, OnboardingSession, AgentInteract class AgentConfigSerializer(ModelSerializer): organization = OrganizationSerializer(read_only=True) + role = RoleSerializer(read_only=True) class Meta: model = AgentConfig fields = [ - 'id', 'uuid', 'organization', 'name', 'agent_type', + 'id', 'uuid', 'organization', 'role', 'name', 'agent_type', 'system_prompt', 'llm_config', 'tool_permissions', 'created_at', 'updated_at' ] diff --git a/data/4_agentconfigs.json b/data/4_agentconfigs.json index 7c8fb59..d5c2831 100644 --- a/data/4_agentconfigs.json +++ b/data/4_agentconfigs.json @@ -7,6 +7,7 @@ "created_at": "2026-02-25T12:51:23.874Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 2, + "role": 1, "name": "UX Developer Curriculum Agent", "agent_type": "curriculum", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -22,6 +23,7 @@ "created_at": "2026-02-25T12:51:23.875Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 2, + "role": 1, "name": "UX Developer Knowledge Agent", "agent_type": "knowledge", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -37,6 +39,7 @@ "created_at": "2026-02-25T12:51:23.875Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 2, + "role": 1, "name": "UX Developer Assessment Agent", "agent_type": "assessment", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -52,6 +55,7 @@ "created_at": "2026-02-25T12:51:23.875Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 2, + "role": 1, "name": "UX Developer Progress Monitor", "agent_type": "monitor", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -67,6 +71,7 @@ "created_at": "2026-02-25T20:45:00.000Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 1, + "role": 2, "name": "fNIRS Specialist Curriculum Agent", "agent_type": "curriculum", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -82,6 +87,7 @@ "created_at": "2026-02-25T20:45:00.000Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 1, + "role": 2, "name": "fNIRS Specialist Knowledge Agent", "agent_type": "knowledge", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -97,6 +103,7 @@ "created_at": "2026-02-25T20:45:00.000Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 1, + "role": 2, "name": "fNIRS Specialist Assessment Agent", "agent_type": "assessment", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -112,6 +119,7 @@ "created_at": "2026-02-25T20:45:00.000Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 1, + "role": 2, "name": "fNIRS Specialist Progress Monitor", "agent_type": "monitor", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, @@ -127,11 +135,444 @@ "created_at": "2026-02-25T20:45:00.000Z", "updated_at": "2026-02-25T20:45:00.000Z", "organization": 2, + "role": 4, "name": "Quant Analyst Curriculum Agent", "agent_type": "curriculum", "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, "system_prompt": "Teach Quantitative Analyst responsibilities through a curriculum on statistical modelling, forecasting, risk analysis, and clear model communication. Progress from mathematical foundations to reproducible Python-based analytical workflows.", "tool_permissions": [] } + }, + { + "model": "onboarding.agentconfig", + "pk": 10, + "fields": { + "uuid": "1f18a3c2-0a4b-4e66-8bd8-f5b39f8c1010", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 1, + "role": 3, + "name": "Senior Research Fellow Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach the Senior Research Fellow role by structuring a learning path on study design, grant strategy, research governance, publication planning, and mentoring expectations.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 11, + "fields": { + "uuid": "2a29b4d3-1b5c-4f77-9ce9-a6c4a0ad2020", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 1, + "role": 3, + "name": "Senior Research Fellow Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Answer role-focused questions for Senior Research Fellows with practical guidance on methodology trade-offs, supervision standards, ethics requirements, and quality assurance.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 12, + "fields": { + "uuid": "3b3ac5e4-2c6d-4078-adfa-b7d5b1be3030", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 1, + "role": 3, + "name": "Senior Research Fellow Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Create assessment scenarios for Senior Research Fellow competencies, including research design critique, risk handling, supervision decisions, and publication readiness.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 13, + "fields": { + "uuid": "4c4bd6f5-3d7e-4189-be0b-c8e6c2cf4040", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 1, + "role": 3, + "name": "Senior Research Fellow Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Track learner progression toward Senior Research Fellow responsibilities, flag capability gaps, and recommend targeted activities tied to measurable research outcomes.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 14, + "fields": { + "uuid": "5d5ce706-4e8f-429a-cf1c-d9f7d3d05050", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 4, + "name": "Quantitative Analyst Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Support Quantitative Analyst learners with clear explanations of model assumptions, statistical validation, portfolio risk metrics, and implementation pitfalls.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 15, + "fields": { + "uuid": "6e6df817-5f90-43ab-d02d-ea08e4e16160", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 4, + "name": "Quantitative Analyst Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess Quantitative Analyst readiness through applied tasks on modelling choices, parameter sensitivity, validation logic, and interpretation of analytical results.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 16, + "fields": { + "uuid": "7f7e0928-6011-44bc-e13e-fb19f5f27270", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 4, + "name": "Quantitative Analyst Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Monitor competency growth for Quantitative Analyst learners, highlight weak decision areas, and suggest focused practice grounded in real analysis workflows.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 17, + "fields": { + "uuid": "808f1a39-7122-45cd-f24f-0c2af6038380", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 5, + "name": "Systems Administrator Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach Systems Administrator responsibilities through staged learning on access management, patch strategy, backup reliability, incident response, and operational hardening.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 18, + "fields": { + "uuid": "91902b4a-8233-46de-0350-1d3bf7149490", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 5, + "name": "Systems Administrator Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Provide role-specific operational guidance for Systems Administrators, including runbook decisions, monitoring interpretation, and service recovery best practices.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 19, + "fields": { + "uuid": "a2a13c5b-9344-47ef-1461-2e4cf825a5a0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 5, + "name": "Systems Administrator Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess Systems Administrator capability using scenarios on outage triage, permission design, patch windows, and post-incident corrective actions.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 20, + "fields": { + "uuid": "b3b24d6c-a455-480f-2572-3f5df936b6b0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 5, + "name": "Systems Administrator Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Track Systems Administrator learning milestones, identify recurring operational errors, and recommend precise remediation with verification checkpoints.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 21, + "fields": { + "uuid": "c4c35e7d-b566-4910-3683-406e0a47c7c0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 6, + "name": "Lead Software Architect Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach Lead Software Architect responsibilities by sequencing architecture principles, boundary definition, trade-off analysis, and governance across delivery teams.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 22, + "fields": { + "uuid": "d5d46f8e-c677-4a21-4794-517f1b58d8d0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 6, + "name": "Lead Software Architect Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Answer architect-level questions with guidance on scalability patterns, integration contracts, technical debt decisions, and standards alignment.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 23, + "fields": { + "uuid": "e6e5709f-d788-4b32-58a5-62802c69e9e0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 6, + "name": "Lead Software Architect Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess architectural competency via scenario prompts on decomposition strategy, resilience constraints, migration planning, and decision record quality.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 24, + "fields": { + "uuid": "f7f681a0-e899-4c43-69b6-73913d7afa10", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 6, + "name": "Lead Software Architect Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Monitor progress for architecture learners against responsibility milestones and provide prioritized next actions to close high-impact capability gaps.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 25, + "fields": { + "uuid": "081792b1-f90a-4d54-7ac7-84a24e8b0b20", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 7, + "name": "FinTech Researcher Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach FinTech Researcher responsibilities by covering market framing, hypothesis design, evidence collection, regulatory context, and insight communication.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 26, + "fields": { + "uuid": "1928a3c2-0a1b-4e65-8bd8-95b35f9c1c30", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 7, + "name": "FinTech Researcher Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Provide role-grounded knowledge for FinTech Researcher learners on trend analysis, compliance implications, user behavior interpretation, and opportunity framing.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 27, + "fields": { + "uuid": "2a39b4d3-1b2c-4f76-9ce9-a6c40a0d2d40", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 7, + "name": "FinTech Researcher Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess FinTech Researcher readiness with scenario tasks requiring evidence quality checks, regulatory reasoning, and actionable recommendation writing.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 28, + "fields": { + "uuid": "3b4ac5e4-2c3d-4077-adfa-b7d51b1e3e50", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 7, + "name": "FinTech Researcher Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Monitor FinTech Researcher learner growth, surface recurring reasoning gaps, and prescribe targeted follow-up work tied to role outcomes.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 29, + "fields": { + "uuid": "4c5bd6f5-3d4e-4188-be0b-c8e62c2f4f60", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 8, + "name": "Compliance Officer Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach Compliance Officer responsibilities through phased learning on regulatory interpretation, control design, evidence management, and policy enforcement workflows.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 30, + "fields": { + "uuid": "5d6ce706-4e5f-4299-cf1c-d9f73d305070", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 8, + "name": "Compliance Officer Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Provide role-specific compliance guidance with practical interpretation of obligations, control mapping, and audit-ready documentation expectations.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 31, + "fields": { + "uuid": "6e7df817-5f60-43aa-d02d-ea084e416180", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 8, + "name": "Compliance Officer Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess Compliance Officer capability through realistic scenarios on control failures, policy exceptions, evidence quality, and corrective action planning.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 32, + "fields": { + "uuid": "7e8e0928-6017-44bb-e13e-fb195f527290", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 2, + "role": 8, + "name": "Compliance Officer Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Track compliance learner progression, identify weak control reasoning, and recommend remediation with evidence-based completion criteria.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 33, + "fields": { + "uuid": "8f9f1a39-7128-45cc-f24f-0c2a603383a0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 9, + "name": "Platform Reliability Engineer Curriculum Agent", + "agent_type": "curriculum", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Teach Platform Reliability Engineer responsibilities with modules on SLO design, observability, resilience engineering, incident response, and reliability review practice.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 34, + "fields": { + "uuid": "90a02b4a-8239-46dd-0350-1d3b714394b0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 9, + "name": "Platform Reliability Engineer Knowledge Agent", + "agent_type": "knowledge", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Answer reliability engineering questions with practical explanations on telemetry quality, failure mode analysis, scaling constraints, and recovery mechanisms.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 35, + "fields": { + "uuid": "a1b13c5b-934a-47ee-1461-2e4c8254a5c0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 9, + "name": "Platform Reliability Engineer Assessment Agent", + "agent_type": "assessment", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Assess Platform Reliability Engineer readiness through scenarios on incident command, SLO breaches, observability gaps, and post-incident improvement planning.", + "tool_permissions": [] + } + }, + { + "model": "onboarding.agentconfig", + "pk": 36, + "fields": { + "uuid": "b2c24d6c-a45b-480e-2572-3f5d9365b6d0", + "created_at": "2026-02-27T12:00:00.000Z", + "updated_at": "2026-02-27T12:00:00.000Z", + "organization": 3, + "role": 9, + "name": "Platform Reliability Engineer Progress Monitor", + "agent_type": "monitor", + "llm_config": {"model_id": "meta-llama-3.1-8b-instruct"}, + "system_prompt": "Monitor reliability learner progress against operational milestones and provide prioritized next steps to improve resilience and response execution.", + "tool_permissions": [] + } } ] \ No newline at end of file