bugfix
This commit is contained in:
parent
5201e2b0ac
commit
fba104a285
@ -140,7 +140,7 @@ class Agent:
|
|||||||
"type": "script_call",
|
"type": "script_call",
|
||||||
"script": decision.script,
|
"script": decision.script,
|
||||||
"skill": decision.skill,
|
"skill": decision.skill,
|
||||||
"params": validated_params,
|
"params": decision.params,
|
||||||
"reason": decision.reason
|
"reason": decision.reason
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ class Agent:
|
|||||||
# resume: 补 missing 参数
|
# resume: 补 missing 参数
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
async def resume(self, state: PlanState, user_reply: str):
|
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)
|
schema_fields = self.skillkit.get_script_params(state.skill, state.script)
|
||||||
if schema_fields is None:
|
if schema_fields is None:
|
||||||
schema_fields = []
|
schema_fields = []
|
||||||
@ -170,14 +170,19 @@ class Agent:
|
|||||||
|
|
||||||
# 校验 schema
|
# 校验 schema
|
||||||
try:
|
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:
|
except MissingParams as e:
|
||||||
state.missing = e.fields
|
state.missing = e.fields
|
||||||
question = await self._ask_user_for_params(state.user_intent, state.skill, e.fields)
|
question = await self._ask_user_for_params(state.user_intent, state.skill, e.fields)
|
||||||
return {"type": "clarification", "state": state, "question": question}
|
return {"type": "clarification", "state": state, "question": question}
|
||||||
|
|
||||||
# 参数完整,返回可直接调用 skill
|
# 参数完整,返回可直接调用 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'])
|
print(result['question'])
|
||||||
user_reply = input()
|
user_reply = input()
|
||||||
result = await agent.resume(result["state"], user_reply)
|
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)
|
f = awaitify(agent.skillkit.execute_skill_script)
|
||||||
rzt = await f(
|
rzt = await f(
|
||||||
result['skill'],
|
result['skill'],
|
||||||
result['script'],
|
result['script'],
|
||||||
params=result['params']
|
args=result['params']
|
||||||
)
|
)
|
||||||
print(rzt)
|
print(rzt)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -11,7 +11,8 @@ def setup_template():
|
|||||||
async def main():
|
async def main():
|
||||||
setup_template()
|
setup_template()
|
||||||
# await skillagent('55QMNxVgvlh8nyis0P1BE', 'eYgNuD6sVQgbj-khOOUNU', './skills')
|
# 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__':
|
if __name__ == '__main__':
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user