2026-01-22 12:38:33 +08:00

185 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

choose_candidates_tmpl = {
"en":"""
User request:
\"\"\"{{prompt}}\"\"\"
Candidate skills:
{{spec_desc}}
Task:
1. Choose the best skill with scripts.
2. Extract parameters strictly matching schema.
Rules:
- If a required parameter is missing, set it to null.
- Output JSON only.
Output:
{
"skill": "...",
"script": "...",
"params": { ... },
"reason": "..."
}
""",
"zh":"""
用户需求:
\"\"\"{{promot}}\"\"\"
候选技能脚本:
技能|技能描述|脚本|脚本描述|已知参数|缺失参数
{% for c in candidates %}
{{c.skill}}|{{c.skill_desc}}|{{c.script}}|{{c.script_desc}}|{{json.dumps(c.params, ensure_ascii=False)}}|{{json.dumps(c.missing_params, ensure_ascii=False)}}
{% endfor %}
任务:
1. 选择最符合用户需求的技能脚本
规则
- 只输出JSON
输出:
{
"skill": "...",
"script": "...",
"params": {},
"missing_params":[...],
"reason": "..."
}
"""
}
resume_tmpl = {
"en":"""
You are an agent helping a user fill parameters for a skill.
Skill name: {{state.skill}}
Script name: {{state.script}}
{% set schema = kit.get_script_params(state.skill, state.script) %}
{% if schema %}
Skill required parameters: {{json.dumps(schema.inputs, ensure_ascii=False)}}
{% else %}
Skill required parameters:[]
{% endif %}
User original intent:
\"\"\"{{state.user_intent}}\"\"\"
Known parameters:
{{json.dumps(state.params, ensure_ascii=False)}}
Missing parameters:
{{json.dumps(state.missing, ensure_ascii=False)}}
User reply:
\"\"\"{{user_reply}}\"\"\"
Task:
- Extract values ONLY for missing parameters.
- Do NOT modify existing known parameters.
- All output must match the skill parameter schema.
- Output JSON only with the missing parameters.
""",
"zh":"""
你是个帮助技能脚本填参的助手
技能名:{{state.skill}}
脚本名:{{state.script}}
{% set schema = kit.get_script_params(state.skill, state.script) %}
{% if schema %}
脚本需要的参数:{{json.dumps(schema.inputs, ensure_ascii=False)}}
{% else %}
脚本不需要的参数
{% endif %}
用户原始需求:
\"\"\"{{state.user_intent}}\"\"\"
已有的参数:
{{json.dumps(state.params, ensure_ascii=False)}}
缺失参数:
{{json.dumps(state.missing, ensure_ascii=False)}}
用户回复:
\"\"\"{{user_reply}}\"\"\"
任务:
- 仅抽取缺失参数的值
- 不要修改已知参数的值
- 所有输出必须符合技能脚本的参数要求
- 值输出缺失参数JSON
"""
}
three_candidates_tmpl = {
"en":"""
User request:
\"\"\"{{json.dumps(prompt, ensure_ascii=False)}}\"\"\"
Available skills:
{{skill_list}}
Task:
Select up to 3 most relevant skill's scripts.
Output JSON list only.
""",
"zh":"""
用户需求:
\"\"\"{{json.dumps(prompt, ensure_ascii=False)}}\"\"\"
可用的技能脚本:
{% for s in skills %}
名字:{{s.metadata.name}}
描述:{{s.metadata.description}}
{% if s.scripts %}
脚本:
{% for sc in s.scripts %}
名字:{{sc.name}}
{% set schema = kit.get_script_schema(s.metadata.name, sc.name) %}
{% if schema %}
描述:{{schema.description or sc.description}}
参数:{{json.dumps(kit.get_script_params(s.metadata.name, sc.name), ensure_ascii=False)}}
{% else %}
描述:{{sc.description}}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
任务:
- 选择3个相关的技能脚本
- 按照脚本参数要求,为脚本从用户需求中识别出参数
输出
仅输出json数组每个元素为
{
"skill":技能名字,
"skill_desc":技能描述(很重要不能缺失)
"script":脚本名字,
“script_desc”脚本描述(很重要不能缺失)
“params”:参数字典,key为参数名value为参数值
“missing_params”如果有缺失参数将缺失参数的参数名放在这数组里
}
"""
}
ask_user_reply_tmpl = {
"en":"""
User request:
\"\"\"{{user_text}}\"\"\"
The script "{{script}} in skill "{{skill}}" requires the following missing parameters:
{{json.dumps(fields, ensure_ascii=False)}}
Ask the user a concise clarification question.
""",
"zh":"""
用户需求
\"\"\"{{user_text}}\"\"\"
这个技能“{{skill}}“下的脚本”{{script}}“需要这些参数:
{{json.dumps(fields, ensure_ascii=False)}}
请用户继续完善问题
"""
}