This commit is contained in:
yumoqing 2026-01-22 12:38:33 +08:00
parent 6e748bd482
commit 5201e2b0ac
2 changed files with 10 additions and 7 deletions

View File

@ -26,6 +26,7 @@ class SkillDecision:
skill: str
script: str
params: dict
missing_params: list
reason: Optional[str] = None
@dataclass
@ -116,17 +117,19 @@ class Agent:
self.load_skills()
candidates = await self._candidate_skills(user_text)
decision = await self._plan_with_candidates(user_text, candidates)
try:
debug(f'{decision=}')
validated_params = self._validate_params(decision)
except MissingParams as e:
question = await self._ask_user_for_params(user_text, decision.skill, decision.script, e.fields)
if decision.missing_params != []:
question = await self._ask_user_for_params(
user_text,
decision.skill,
decision.script,
decision.missing_params
)
state = PlanState(
user_intent=user_text,
skill=decision.skill,
script=decision.script,
params=decision.params,
missing=e.fields
missing=decision.missing_params
)
return {
"type": "clarification",

View File

@ -36,7 +36,6 @@ Output:
1. 选择最符合用户需求的技能脚本
规则
- 如果一个需要的参数缺失设为null
- 只输出JSON
输出
@ -44,6 +43,7 @@ Output:
"skill": "...",
"script": "...",
"params": {},
"missing_params":[...],
"reason": "..."
}
"""