This commit is contained in:
yumoqing 2026-01-22 11:55:42 +08:00
parent 6cc1fdeb4e
commit 6e748bd482
5 changed files with 28 additions and 4 deletions

View File

@ -80,7 +80,6 @@ class DummyLLM(LLM):
continue
if d.get('content'):
doc = f'{doc}{d["content"]}'
debug(f'{doc=}')
return doc
# ---------------------------
@ -118,6 +117,7 @@ class Agent:
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)

View File

@ -88,3 +88,26 @@ class ParameterResolver:
return ResolvedParams(params=validated)
if __name__ == '__main__':
params = {'a': 12312, 'op': '*', 'b': 233}
schema = {
"a": {
"type": "int or float",
"required": True,
"description": "计算左值"
},
"op": {
"type": "str",
"required": True,
"description": "计算方法",
"enum": ["+", "-", "*", "/"]
},
"b": {
"type": "int or float",
"required": True,
"description": "计算左值"
}
}
p = ParameterResolver(schema)
x = p.resolve(params)
print(x)

View File

@ -75,6 +75,7 @@ class SkillkitWrapper:
m = self.get_script_schema(skill_name, script_name)
if not m:
return []
return m.inputs
def get_skill_scripts(self, skill_name):

View File

@ -139,7 +139,7 @@ Output JSON list only.
{% set schema = kit.get_script_schema(s.metadata.name, sc.name) %}
{% if schema %}
描述{{schema.description or sc.description}}
参数{{json.dumps(schema.params, ensure_ascii=False)}}
参数{{json.dumps(kit.get_script_params(s.metadata.name, sc.name), ensure_ascii=False)}}
{% else %}
描述{{sc.description}}
{% endif %}
@ -151,7 +151,7 @@ Output JSON list only.
- 按照脚本参数要求为脚本从用户需求中识别出参数
输出
仅输出json每个元素为
仅输出json数组每个元素为
{
"skill":技能名字
"skill_desc":技能描述(很重要不能缺失

View File

@ -10,7 +10,7 @@ scripts:
type: str
required: true
description: 计算方法
enum: [+ - * /]
enum: ['+', '-', '*', '/']
b:
type: int or float
required: true