bugfix
This commit is contained in:
parent
5201e2b0ac
commit
fba104a285
@ -140,7 +140,7 @@ class Agent:
|
||||
"type": "script_call",
|
||||
"script": decision.script,
|
||||
"skill": decision.skill,
|
||||
"params": validated_params,
|
||||
"params": decision.params,
|
||||
"reason": decision.reason
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ class Agent:
|
||||
# resume: 补 missing 参数
|
||||
# ---------------------------
|
||||
async def resume(self, state: PlanState, user_reply: str):
|
||||
skill_spec = next(s for s in self.skills if s.name == state.skill)
|
||||
skill_spec = next(s for s in self.skills if s.metadata.name == state.skill)
|
||||
schema_fields = self.skillkit.get_script_params(state.skill, state.script)
|
||||
if schema_fields is None:
|
||||
schema_fields = []
|
||||
@ -170,14 +170,19 @@ class Agent:
|
||||
|
||||
# 校验 schema
|
||||
try:
|
||||
validated = self._validate_params(SkillDecision(skill=state.skill, script=state.script, params=state.params))
|
||||
validated = self._validate_params(SkillDecision(
|
||||
skill=state.skill,
|
||||
script=state.script,
|
||||
params=state.params,
|
||||
missing_params=[]
|
||||
))
|
||||
except MissingParams as e:
|
||||
state.missing = e.fields
|
||||
question = await self._ask_user_for_params(state.user_intent, state.skill, e.fields)
|
||||
return {"type": "clarification", "state": state, "question": question}
|
||||
|
||||
# 参数完整,返回可直接调用 skill
|
||||
return {"type": "skill_call", "skill": state.skill, "params": validated}
|
||||
return {"type": "script_call", "skill": state.skill, "params": validated}
|
||||
|
||||
# ---------------------------
|
||||
# 内部方法
|
||||
@ -262,12 +267,12 @@ async def skillagent(llm, apikey, user_skillroot, sys_skillroot=None):
|
||||
print(result['question'])
|
||||
user_reply = input()
|
||||
result = await agent.resume(result["state"], user_reply)
|
||||
if result['type'] == 'skill_call':
|
||||
if result['type'] == 'script_call':
|
||||
f = awaitify(agent.skillkit.execute_skill_script)
|
||||
rzt = await f(
|
||||
result['skill'],
|
||||
result['script'],
|
||||
params=result['params']
|
||||
args=result['params']
|
||||
)
|
||||
print(rzt)
|
||||
else:
|
||||
|
||||
@ -11,7 +11,8 @@ def setup_template():
|
||||
async def main():
|
||||
setup_template()
|
||||
# await skillagent('55QMNxVgvlh8nyis0P1BE', 'eYgNuD6sVQgbj-khOOUNU', './skills')
|
||||
await skillagent('09Xzu3kQ-K98Ewy2KtyU3', 'eYgNuD6sVQgbj-khOOUNU', './skills')
|
||||
# await skillagent('09Xzu3kQ-K98Ewy2KtyU3', 'eYgNuD6sVQgbj-khOOUNU', './skills')
|
||||
await skillagent('YLsLP-XdwgywF59eYGIk5', 'eYgNuD6sVQgbj-khOOUNU', './skills')
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user