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

View File

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