init
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""The output format of deep research agent"""
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class SubtasksDecomposition(BaseModel):
|
||||
"""
|
||||
Model for structured subtask decomposition output in deep research.
|
||||
"""
|
||||
|
||||
knowledge_gaps: str = Field(
|
||||
description=(
|
||||
"A markdown checklist of essential knowledge gaps "
|
||||
"and optional perspective-expansion gaps (flagged "
|
||||
"with (EXPANSION)), each on its own line. "
|
||||
"E.g. '- [ ] Detailed analysis of JD.com's "
|
||||
"...\\n- [ ] (EXPANSION) X...'."
|
||||
),
|
||||
)
|
||||
working_plan: str = Field(
|
||||
description=(
|
||||
"A logically ordered step-by-step working "
|
||||
"meta_planner_agent (3-5 steps), each step starting with "
|
||||
"its number (1., 2., etc), including both "
|
||||
"core and expansion steps. Expanded steps "
|
||||
"should be clearly marked with (EXPANSION) "
|
||||
"and provide contextual or analytical depth.."
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class WebExtraction(BaseModel):
|
||||
"""
|
||||
Model for structured follow-up web extraction output in deep research.
|
||||
"""
|
||||
|
||||
reasoning: str = Field(
|
||||
description="The reasoning for your decision, including a "
|
||||
"summary of evidence and logic for whether more "
|
||||
"information is needed.",
|
||||
)
|
||||
need_more_information: bool = Field(
|
||||
description="Whether more information is needed.",
|
||||
)
|
||||
title: str = Field(
|
||||
description="Title of the identified search result snippet "
|
||||
"that requires further extraction, or an empty "
|
||||
"string if not applicable.",
|
||||
)
|
||||
url: str = Field(
|
||||
description="Direct URL to the original search result "
|
||||
"requiring further extraction, or an empty "
|
||||
"string if not applicable.",
|
||||
)
|
||||
subtask: str = Field(
|
||||
description="Actionable description of the follow-up task "
|
||||
"to obtain needed information, or an empty string "
|
||||
"if not applicable.",
|
||||
)
|
||||
|
||||
|
||||
class FollowupJudge(BaseModel):
|
||||
"""
|
||||
Model for structured follow-up decompose judging output in deep research.
|
||||
"""
|
||||
|
||||
reasoning: str = Field(
|
||||
description="The reasoning for your decision, including a "
|
||||
"summary of evidence and logic for whether "
|
||||
"more information is needed.",
|
||||
)
|
||||
is_sufficient: bool = Field(
|
||||
description="whether the information content is adequate.",
|
||||
)
|
||||
|
||||
|
||||
class ReflectFailure(BaseModel):
|
||||
"""
|
||||
Model for structured failure reflection output in deep research.
|
||||
"""
|
||||
|
||||
rephrase_subtask: dict = Field(
|
||||
description=(
|
||||
"Information about whether the problematic "
|
||||
"subtask needs to be rephrased due "
|
||||
"to a design flaw or misunderstanding. "
|
||||
"If rephrasing is needed, provide the "
|
||||
"modified working meta_planner_agent with only the "
|
||||
"inappropriate subtask replaced by its "
|
||||
"improved version."
|
||||
),
|
||||
json_schema_extra={
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"need_rephrase": {
|
||||
"type": "boolean",
|
||||
"description": "Set to 'true' if the failed subtask "
|
||||
"needs to be rephrased due to a design "
|
||||
"flaw or misunderstanding; otherwise, 'false'.",
|
||||
},
|
||||
"rephrased_plan": {
|
||||
"type": "string",
|
||||
"description": "The modified working meta_planner_agent "
|
||||
"with only the inappropriate "
|
||||
"subtask replaced by its improved version. If no "
|
||||
"rephrasing is needed, provide an empty string.",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
decompose_subtask: dict = Field(
|
||||
description=(
|
||||
"Information about whether the problematic subtask "
|
||||
"should be further decomposed. If decomposition "
|
||||
"is required, provide the failed subtask "
|
||||
"and the reason for its decomposition."
|
||||
),
|
||||
json_schema_extra={
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"need_decompose": {
|
||||
"type": "boolean",
|
||||
"description": "Set to 'true' if "
|
||||
"the failed subtask should "
|
||||
"be further decomposed; otherwise, 'false'.",
|
||||
},
|
||||
"rephrased_plan": {
|
||||
"type": "string",
|
||||
"description": "Information about whether "
|
||||
"the failed subtask requires "
|
||||
"decomposition, and the "
|
||||
"failed subtask itself if needed.",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user