你在 Midscene 编写的自然语言参数,最终都会变成提示词(Prompt)发送给大语言模型。以下是一些可以帮助提升效果的提示词工程(Prompt Engineering)技巧。
由于 AI 常常会“幻想”,调优的目标是在多次运行中获得模型的稳定响应。大多数情况下,通过使用良好的提示,AI 模型的响应效果可以变得更好。
提供详细描述和示例一直是非常有用的提示词技巧。
例如: ❌ 错误示例
✅ 正确示例
❌ 错误示例
✅ 正确示例
例如:
agent.ai('点击登录按钮')
是自动规划模式,Midscene 会规划步骤并执行。它可能会花费更多时间和 token.
使用 agent.aiTap('登录按钮')
你可以直接使用 AI 模型定位结果并执行点击操作。它比自动规划模式更快且更准确。
更多细节请参考 API.
.ai
交互出错的原因理解报告文件
通过查看 Midscene 的运行报告,你可以看到每个 .ai
调用中的两个主要步骤:
首先,你应该找出 AI 在规划步骤还是定位步骤中出错。
当看到步骤不符预期(多步骤或少步骤),说明 AI 在规划步骤中出错。此时,你可以尝试在任务流中提供更多细节。
例如:
❌ 错误示例
你可以尝试:
✅ 正确示例
当看到定位结果不符预期(元素错误或坐标偏移),说明 AI 在定位步骤中出错。此时,你可以尝试在定位参数中提供更多细节。
例如:
❌ 错误示例
你可以尝试:
✅ 正确示例
其他优化方法
agent.aiTap()
)代替 .ai
使用 .ai
每次只做一件事。尽管 Midscene 有自动重规划能力,但仍应保持指令简洁。否则,LLM 的输出可能会变得混乱。指令的长度对 token 消耗的影响几乎可以忽略不计。
❌ 错误示例
✅ 正确示例:将任务分解为多个步骤的 .ai
调用
例如:
❌ 错误示例
❌ 错误示例
✅ 正确示例
测试报告里有每个步骤的详细信息。如果你想结合报告里的 UI 状态重新运行 Prompt,你可以启动本地 Playground Server,然后点击“Send to Playground”。
启动本地 Playground Server:
所有传递给 LLM 的数据都是截图和元素坐标。DOM和浏览器 对 LLM 来说几乎是不可见的。因此,务必确保你想提取的信息都在截图中有所体现且能被 LLM “看到”。
❌ 错误示例
❌ 错误示例
❌ 错误示例
✅ 正确示例
LLM 可能会表现出错误的行为。更好的做法是运行操作后检查其结果。
例如,你可以在插入记录后检查待办应用的列表内容。
由于大多数 AI 模型可以理解多种语言,所以请随意用你喜欢的语言撰写提示指令。即使提示语言与页面语言不同,通常也是可行的。