fix: harden structured agent intake

This commit is contained in:
hailin
2026-07-27 20:31:41 +08:00
parent 8296f3c96f
commit 9c94957739
4 changed files with 19 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ from apps.modelhub.models import ModelDeployment
from apps.skills.models import SkillDefinition, SkillVersion
RELEASE_MARKER = "trusted-ticket-intake-v5-structured-context"
TRUSTED_INTAKE_MAX_OUTPUT_TOKENS = 8192
CATEGORY_CODES = [
"business_issue",
"operation_issue",
@@ -458,6 +459,7 @@ class Command(BaseCommand):
"knowledge_context": [],
},
temperature_override=0.1,
max_output_tokens_override=TRUSTED_INTAKE_MAX_OUTPUT_TOKENS,
published_at=timezone.now(),
)
AgentStepBinding.objects.bulk_create(

View File

@@ -408,20 +408,30 @@ def _normalize_nested_output(output: Any, output_schema: dict) -> Any:
nested_fields = output.get("fields")
if isinstance(nested_fields, dict):
fields = _complete_object_shape(nested_fields, field_schema)
normalized = dict(output)
elif field_codes.intersection(output):
fields = _complete_object_shape(
{code: output[code] for code in field_codes if code in output},
field_schema,
)
normalized = {
code: value
for code, value in output.items()
if code not in field_codes
}
else:
fields = None
if fields is not None:
questions = output.get("questions", output.get("follow_up_questions", []))
return {
"fields": fields,
"missing_fields": list(output.get("missing_fields", [])),
"questions": list(questions) if isinstance(questions, list) else [],
}
normalized.pop("follow_up_questions", None)
normalized.update(
{
"fields": fields,
"missing_fields": list(output.get("missing_fields", [])),
"questions": list(questions) if isinstance(questions, list) else [],
}
)
return normalized
return output