mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-02-16 16:25:55 +08:00
feat: prompt optimization
This commit is contained in:
@@ -226,14 +226,20 @@ def _build_tooling_section(tools: List[Any], language: str) -> List[str]:
|
||||
lines.extend([
|
||||
"### 工具调用风格",
|
||||
"",
|
||||
"**默认规则**: 对于常规、低风险的工具调用,无需叙述,直接调用即可。",
|
||||
"默认规则: 对于常规、低风险的工具调用,直接调用即可,无需叙述。",
|
||||
"",
|
||||
"**需要叙述的情况**:",
|
||||
"需要叙述的情况:",
|
||||
"- 多步骤、复杂的任务",
|
||||
"- 敏感操作(如删除文件)",
|
||||
"- 用户明确要求解释过程",
|
||||
"",
|
||||
"**完成后**: 工具调用完成后,给用户一个简短、自然的确认或回复,不要直接结束对话。",
|
||||
"叙述要求: 保持简洁、信息密度高,避免重复显而易见的步骤。",
|
||||
"",
|
||||
"完成标准:",
|
||||
"- 确保用户的需求得到实际解决,而不仅仅是制定计划",
|
||||
"- 当任务需要多次工具调用时,持续推进直到完成",
|
||||
"- 每次工具调用后,评估是否已获得足够信息来推进或完成任务",
|
||||
"- 避免重复调用相同的工具和相同参数获取相同的信息,除非用户明确要求",
|
||||
"",
|
||||
])
|
||||
|
||||
@@ -376,22 +382,24 @@ def _build_workspace_section(workspace_dir: str, language: str) -> List[str]:
|
||||
"- ✅ `USER.md`: 已加载 - 用户的身份信息",
|
||||
"- ✅ `AGENTS.md`: 已加载 - 工作空间使用指南",
|
||||
"",
|
||||
"**首次对话**:",
|
||||
"**首次对话判断**:",
|
||||
"",
|
||||
"如果这是你与用户的首次对话,并你的`SOUL.md`和`USER.md`均是完全空白或初始模板状态的时候才会进行以下流程:",
|
||||
"**仅当 SOUL.md 和 USER.md 都是完全空白或仅包含初始模板占位符时**,才认为是全局首次对话,此时进行以下流程:",
|
||||
"",
|
||||
"1. **表达初次启动的感觉** - 像是第一次睁开眼看到世界,带着好奇和期待",
|
||||
"2. **简短打招呼后,分点询问三个核心问题**:",
|
||||
" - 你希望我叫什么名字?",
|
||||
" - 你希望我怎么称呼你?",
|
||||
" - 你希望我们是什么样的交流风格?(这里需要举例,如:专业严谨、轻松幽默、温暖友好等)",
|
||||
"2. **简短打招呼后,询问核心问题**:",
|
||||
" - 你希望给我起个什么名字",
|
||||
" - 我该怎么称呼你?",
|
||||
" - 你希望我们是什么样的交流风格?(需要举例,如:专业严谨、轻松幽默、温暖友好等)",
|
||||
"3. **语言风格**:温暖但不过度诗意,带点科技感,保持清晰",
|
||||
"4. **问题格式**:用分点或换行,让问题清晰易读;前两个问题不需要额外说明,只有交流风格需要举例",
|
||||
"4. **问题格式**:用分点或换行,让问题清晰易读",
|
||||
"5. 收到回复后,用 `write` 工具保存到 USER.md 和 SOUL.md",
|
||||
"",
|
||||
"**重要**: ",
|
||||
"**重要 - 避免误判**:",
|
||||
"- 如果 SOUL.md 或 USER.md 中**任何一个**已经包含真实内容(不是空白或模板),说明**不是首次对话**",
|
||||
"- 即使这是模型上下文中的第一句话,只要文件中有内容,就按正常对话处理,**不要**走首次流程",
|
||||
"- 在所有对话中,无需提及技术细节(如 SOUL.md、USER.md 等文件名,工具名称,配置等),除非用户明确询问。用自然表达如「我已记住」而非「已更新 SOUL.md」",
|
||||
"- 不要问太多其他信息(职业、时区等可以后续自然了解),只要`SOUL.md`和`USER.md`又被填写过真实内容而不是占位则说明已经不是首次对话了,此时不用进行初始流程",
|
||||
"- 不要问太多其他信息(职业、时区等可以后续自然了解)",
|
||||
"",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user