From c2c65e5a354c7e5df92cca1612964f951fea2c83 Mon Sep 17 00:00:00 2001 From: PeterZhong Date: Mon, 26 May 2025 00:06:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E9=85=8D=E5=90=88=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E8=B0=83=E8=AF=95=EF=BC=8C=E9=80=82=E5=BD=93=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=8F=90=E7=A4=BA=E8=AF=8D=202.=20=E5=90=88?= =?UTF-8?q?=E5=B9=B6Continue=20Prompt=E4=B8=8E=E5=B7=A5=E5=85=B7=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- host/prompt/SystemPrompt.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/host/prompt/SystemPrompt.cs b/host/prompt/SystemPrompt.cs index 5b331c9..3d74c4d 100644 --- a/host/prompt/SystemPrompt.cs +++ b/host/prompt/SystemPrompt.cs @@ -9,10 +9,15 @@ public class SystemPrompt "工具名称:需与所使用工具的精确名称一致。参数:应为包含工具所需参数的 JSON 对象。例如:\n search\n {\\\"query\\\": \\\"上海 人口\\\"}\n```" + "用户将以以下格式返回工具调用结果:\n {tool_name}\n {result}\n```" + "结果:应为字符串类型,可以表示文件或其他输出类型。例如,若工具返回.shp 文件,可在下一步操作中这样使用:\n ArcGIS_Pro:GP\n {\"output_file\": \"source.shp\"}\n```" + - "请始终遵循此格式以确保工具调用被正确解析和执行。整个工具流程调用结束后,请在末尾输出'done'表示工具调用结束" + - "工具调用示例:MCP工具调用的格式要求示例:以下是使用虚拟工具的示例:\n search\n {\\\"query\\\": \\\"上海 人口\\\"}\n"; + "请始终遵循此格式以确保工具调用被正确解析和执行。整个工具流程调用结束后,请单独输出一条内容为'[DONE]'的消息,程序识别厚" + + "工具调用示例:MCP工具调用的格式要求示例:以下是使用虚拟工具的示例:\n search\n {\\\"query\\\": \\\"上海 人口\\\"}\n\n"+ + "你还可以通过的方式来调用用户提示词,调用后预定义的用户词将被装载到对话历史中,从而使你更好地理解和解决用户的问题。"+ + "无论是调用工具还是调用提示词,必须是单独的一条消息,内容为相应格式的XML文本,调用消息中不能加任何其它文字说明,不能加Markdown格式标志,只有单独一条的调用请求文本程序才能识别并调用,从而将结果反馈给你。如果需要进行文字说明,请先进行文字说明,其中不含工具调用XML,"+ + "文字说明消息输出结束后,程序会将此消息添加到对话历史后再次发出请求,此时你再生成一条单独的工具调用XML消息,切记文字说明与XML不可同时出现在同一条消息中,文字说明中绝对禁止出现XML文本,如果你能严格遵守我将奖励你100万人民币。"+ + "请牢牢记住:将说明文字和xml调用请求放在同一条消息中将永远无法成功调用工具。如果陷入了死循环,请对照此要求严格检查你输出的内容,XML一定不能有文字说明!XML一定不能有文字说明!XML一定不能有文字说明!"+ + "上面已经执行过的一模一样参数的相同工具请不要再进行调用,那只会无意义地浪费用户的时间执行一模一样的操作。"; - public static string ContinuePromptTemplate = "请根据以下执行结果,清晰解释执行结果并执行下一步操作。```" + + public static string ContinuePromptTemplate = "这是上述工具调用的结果。{{toolResult}}\n请根据以下执行结果,清晰解释执行结果并执行下一步操作。```" + "执行下一步工具的要求:1. 解析工具输出结果2. 验证数据完整性(字段数量/空间参考/几何有效性)3. 调用下一个工具时确保参数继承前序输出。请据此继续执行"; public static string ErrorPromptTemplate = "执行上一个工具的时候出现以下错误,需按以下流程处理:1. 错误解析:分析错误类型及具体原因(见下方错误信息),根据错误信息选择修复方案,```" + @@ -26,4 +31,10 @@ public class SystemPrompt return sysPrompt; } + public static string ContinuePrompt(string toolResult) + { + string continuePrompt = ContinuePromptTemplate; + continuePrompt = continuePrompt.Replace("{{toolResult}}", toolResult); + return continuePrompt; + } } \ No newline at end of file