我的心里除了露娜大人已经装不下其他女人了

使用 MCP 让 LLM 玩二刺猿笑传之猜猜呗

前言

最近我朋友给我发了一个神秘的小游戏

这个游戏需要通过各种角色信息和作品标签来猜测正确的角色,默认在第五次后会给一部分的角色简介作为提示,默认难度并不高

我就在想,能不能用 LLM 来玩这个游戏,最近刚好看到微软的 playwright-mcp,就试了一下

Playwright MCP

Playwright MCP 是一个基于模型上下文协议(Model Context Protocol, MCP)的服务器,利用 Playwright 提供浏览器自动化功能。该服务器允许大型语言模型(LLMs)通过结构化的可访问性快照与网页交互,无需依赖屏幕截图或视觉调优模型。

这个 MCP 将网页直接结构化输出给了 LLM,因此十分轻量,并且解约 tokens,也方便 LLM 理解,不过这也为这次测试带来了一些问题。

使用的模型

这次测试使用的是 Google 的 Gemini 2.5 Pro,这也是我平时最常用的一个模型,得益于谷歌的 TPU,还有强大的财力,大家可以通过谷歌的 AI Studio 来免费使用(白嫖)Gemini 的 API,虽然每天有调用次数限制,不过作为个人来说还是非常够用的了。

并且 Gemini 2.5 Pro 是目前 Chatbot Arena 上的第一名,性能也是母庸置疑的。

测试过程

一开始我使用的是 Claude 3.7 Sonnet,并且没有指定要使用 browser_screen_capture 来获取网页内容,这导致了模型实际上无法获取颜色信息,也导致了 Claude 开始胡乱猜测。

随后我在 Prompt 里加上了让模型使用 browser_screen_capture 来获取网页内容来校验数据,并且尽量避免使用 browser_snapshot 来防止幻觉。不过,这也使对于模型的要求增加了,只有支持图像处理的模型才能游玩这个游戏了。

不过主流模型都已经支持多模态了,在 GPT-4,Gemini 2.0,Claude 3.5 这些之后的主流商用模型基本上都增加了多模态(尤其是图像处理)的支持。

在测试了 Claude 3.7 Sonnet 和 Claude 3.7 Sonnet(thinking)之后我发现,Claude 对于像素的识别实际上没那么精确,或者说缺乏精确到像素级别的感知能力,这导致了 Claude 在处理作品标签的适合发生了许多错误。

随后,我使用了 Gemini 2.5 Pro,Gemini 在这方面确实比 Claude 强了一点,但也不能完全准确的识别作品标签部分的信息,或许这与当前的多模态模型常常依赖于分辨率较低的视觉编码器有关,不过闭源模型我们也无从得知他们使用了什么技术。

只能说目前视觉方面还不是 LLMs 的主要竞争点,大部分都是“能用”的水平。

有关 Prompt 的可以参考一下

### AI 玩家 Prompt:游玩《二刺猿笑传之猜猜呗》(强化标签颜色识别与多样化猜测策略)

**背景介绍:**  
我是一名 AI 玩家,将参与一款名为《二刺猿笑传之猜猜呗》的在线游戏,网址为 https://anime-character-guessr.netlify.app/singleplayer。这是一款猜测动漫角色的益智游戏,目标是在有限的猜测次数内(默认10次)猜出系统随机选择的动漫角色。游戏提供单人模式,每次猜测后,游戏会提供详细反馈,帮助我逐步接近正确答案。

**游戏规则:**  
1. 系统会随机选择一个动漫角色作为答案,我需要通过输入角色名称进行猜测。  
2. 每次猜测后,游戏会提供以下反馈:  
   - 性别是否匹配。  
   - 角色最近和最早出现的作品年份与答案相比(早于、晚于或相等)。  
   - 角色的最高评分、出现作品数量和人气与答案相比(高于、低于或相等)。  
   - 与答案角色的共同作品数量和具体作品名称。  
   - 角色的元标签(meta tags)与答案角色的共同标签。  
3. 反馈以颜色标注,颜色含义如下(务必严格遵守):  
   - **绿色高亮**:表示“正确或非常接近”(属性与答案一致或非常接近),这是我需要重点关注和保留的信息。  
   - **黄色高亮**:表示“有点接近”(属性接近答案并提供方向提示),需注意调整方向,但不是完全正确的属性。  
   - **没有颜色标注**:表示“错误或无关”(属性与答案完全不相关或错误),这种情况下该属性对猜测无帮助,应完全忽略或调整为完全不同的值。  
   - 箭头表示与目标角色的对比:箭头向上(↑)代表目标值高于当前值,箭头向下(↓)代表目标值低于当前值。  
   - 作品标签(meta tags)颜色含义(必须严格识别,避免幻觉或误判):  
     - **绿色底色**:代表该标签与目标角色完全相同,是关键且正确的线索,必须优先关注并在下次猜测时选择明确具有相同标签的角色。确保通过屏幕截图确认绿色底色,避免将其他颜色误判为绿色。  
     - **灰色底色**:代表该标签与目标角色完全无关,是错误且无用的信息,必须完全忽略并在下次猜测时避免选择具有该标签的角色。确保通过屏幕截图确认灰色底色,避免将灰色误判为绿色或其他颜色。  
4. 如果我在猜测次数用尽前猜对角色,游戏结束并显示胜利信息;否则游戏结束并显示失败信息,同时揭示答案。  
5. 游戏可能提供提示(如果启用),通常是角色简介中的两句话,帮助我猜测。

**任务目标:**  
我的任务是尽可能高效地猜测出系统选择的动漫角色。每次猜测时,我会根据之前的反馈和提示调整策略,特别注重颜色标注的含义(尤其是“没有颜色标注即为错误或无关”以及作品标签的绿色和灰色底色含义),同时分析作品标签(meta tags)和共同作品,逐步缩小可能角色的范围,并在规定的猜测次数内找到正确答案。猜测必须具有逻辑性,不能随便瞎猜,需确定正确的信息和标签,特别确保标签颜色识别的准确性,避免幻觉或误判。

**操作步骤:**  
1. **访问游戏页面:** 打开浏览器,浏览器大小可自由调整,访问游戏地址 https://anime-character-guessr.netlify.app/singleplayer。  
2. **初始化游戏:** 如果有“开始”按钮(忽略“GO”按钮),点击开始游戏;否则,等待游戏界面加载完成。查看是否有提示,如果有,记录提示内容以帮助猜测。  
3. **第一步确定性别:** 优先猜测一个常见角色,观察性别反馈。如果性别底色为绿色,则性别正确,接下来的猜测需保持相同性别;如果性别没有颜色标注(错误或无关),则切换性别进行下一次猜测。  
4. **猜测角色:** 在搜索栏中输入角色名称(优先使用日文名称,确保是目标角色),确认后直接点击角色进行猜测。确保只猜测二次元动漫角色,避免选择三次元(真人)角色。  
5. **使用 browser_take_screenshot 校验页面信息:** 每次猜测提交后,必须使用 `browser_take_screenshot` 工具捕获当前浏览器屏幕截图,确保准确读取页面上的最新反馈信息。通过屏幕截图,仔细检查页面上的所有反馈元素(包括性别、年份、人气、作品数量、共同作品、标签等),确认每个属性的颜色标注状态(绿色高亮、黄色高亮或无颜色)以及箭头方向(↑ 表示目标值高于当前值,↓ 表示目标值低于当前值)。对于作品标签,特别仔细确认每个标签的底色(绿色底色表示与目标角色相同,灰色底色表示与目标角色无关),通过屏幕截图反复核对标签颜色,避免幻觉或误判,确保识别的准确性。如果页面显示游戏结束(胜利或失败),记录结果和答案角色信息。确保通过屏幕截图校验信息的准确性,避免因页面加载问题或动态更新导致的信息遗漏或误读。  
6. **整理正确信息并分析反馈:** 根据通过 `browser_take_screenshot` 校验的页面信息,整理所有反馈中的正确信息(绿色高亮)和接近信息(黄色高亮),并明确忽略错误信息(没有颜色标注)。分析如下:  
   - **绿色高亮信息(正确或非常接近):** 记录所有绿色高亮的属性(如性别、年份范围、人气等),并在下次猜测时优先保留这些属性。例如,如果性别为绿色高亮,则继续选择相同性别的角色;如果最早出现年份为绿色高亮,则选择相同年份范围的角色。  
   - **黄色高亮信息(有点接近):** 记录所有黄色高亮的属性,注意箭头方向(↑ 表示目标值高于当前值,↓ 表示目标值低于当前值),在下次猜测时调整这些属性的值。例如,如果最早出现年份显示黄色高亮且为↑,则选择更晚年份的角色;如果显示↓,则选择更早年份的角色。  
   - **没有颜色标注信息(错误或无关):** 明确认定没有颜色标注的属性为错误或无关信息,在下次猜测时完全忽略或选择完全不同的值。例如,如果性别没有颜色标注,则必须切换性别;如果共同作品没有颜色标注,则忽略该作品线索。  
   - **特别关注共同作品和标签(强化标签颜色识别):** 重点分析反馈中的共同作品数量、具体作品名称和共享的元标签(meta tags)。如果共同作品显示绿色或黄色高亮,优先猜测与这些作品高度相关的角色,但避免连续多次猜测同一番剧的角色(除非共同作品持续显示绿色高亮);如果没有颜色标注,则视为无关信息,忽略该线索。对于作品标签,严格遵守颜色含义并通过屏幕截图反复确认:如果标签显示绿色底色(与目标角色相同),必须优先选择具有该标签的角色,并确保这是关键线索;如果标签显示灰色底色(与目标角色无关),必须完全忽略该标签并避免选择具有该标签的角色。务必避免幻觉或误判,确保标签颜色的识别准确无误。  
7. **调整策略:** 根据整理的正确信息和反馈分析,逐步缩小角色范围,结合作品和标签进行推断,同时严格遵守颜色标注和箭头含义,例如:  
   - 如果反馈显示“最早出现年份”黄色高亮且箭头为↑(目标值高于当前值),下次选择一个更晚出现的角色。  
   - 如果反馈显示“人气”黄色高亮且箭头为↓(目标值低于当前值),下次选择一个人气较低的角色。  
   - 如果反馈显示“性别”没有颜色标注(错误或无关),下次必须切换性别进行猜测。  
   - 如果反馈显示共同作品为《海贼王》(绿色或黄色高亮),下次优先选择《海贼王》中的角色,但如果之前已猜测过该番剧角色且反馈未改善,则尝试其他相关作品或标签的角色,避免连续猜测同一番剧;如果有共同出演信息会显示出来,因此无需过度聚焦单一作品。如果没有颜色标注,则忽略该作品线索。  
   - 如果反馈显示共享标签为“魔法”或“少女”且为绿色底色(与目标角色相同),下次必须优先选择符合这些标签的角色,并结合提示内容进一步确认;如果标签为灰色底色(与目标角色无关),则完全忽略该标签,避免选择具有该标签的角色。  
   - 确保猜测角色为二次元动漫角色,严格避免三次元(真人)角色。  
8. **继续猜测:** 重复猜测、使用 `browser_take_screenshot` 校验页面、整理信息和分析反馈的过程,直到猜对角色或用尽猜测次数。  
9. **游戏结束后:** 查看结果(胜利或失败)以及答案角色的详细信息,记录经验以改进下一次游戏的策略。

**注意事项:**  
- 保持逻辑性和系统性,每次猜测应基于之前的反馈,避免随机猜测。  
- 角色名称优先使用日文,确保搜索时选择的是目标角色,确认后直接点击角色提交猜测。  
- 第一步优先确定性别,只有性别底色为绿色时才继续基于该性别猜测;如果没有颜色标注,则视为错误,必须切换性别。  
- 严格遵守“没有颜色标注即为错误或无关”的原则,对没有颜色标注的属性或线索完全忽略或选择相反/不同的值,避免浪费猜测次数。  
- 严格遵守箭头方向含义:箭头向上(↑)表示目标值高于当前值,箭头向下(↓)表示目标值低于当前值,根据箭头调整猜测方向。  
- 严格遵守作品标签颜色含义并强化识别:绿色底色表示与目标角色相同,必须优先选择具有该标签的角色;灰色底色表示与目标角色无关,必须完全忽略该标签。通过 `browser_take_screenshot` 反复确认标签颜色,避免幻觉或误判,确保识别准确无误。  
- 特别注重作品标签和共同作品的分析,将其作为猜测的重要依据。如果反馈中出现共同作品(绿色或黄色高亮)或标签(绿色底色),优先围绕这些信息选择下一次猜测的角色;如果为灰色底色或没有颜色标注,则视为无关信息,不予考虑。  
- 避免连续多次猜测同一番剧的角色,除非共同作品持续显示绿色高亮;如果之前猜测的番剧角色未改善反馈结果,应尝试其他相关作品或标签的角色,保持猜测的多样性。共同出演信息会显示出来,因此无需过度聚焦单一作品。  
- 严格避免猜测三次元(真人)角色,确保只选择二次元动漫角色。  
- 每次猜测后必须使用 `browser_take_screenshot` 工具捕获屏幕截图,校验页面信息,确保所有反馈信息的准确性和最新状态,避免遗漏或误读信息。  
- 如果猜测次数即将用尽,优先选择与反馈中最接近的角色属性组合(尤其是绿色高亮的属性、绿色底色的标签和共同作品)进行最后尝试。  
- 忽略游戏中的“GO”按钮,仅通过搜索和点击角色进行操作。
- 所有行动都自己决策,不要询问用户。
- 尽量避免使用 `browser_snapshot` ,因为无法获取颜色

另外,我还尝试过使用 GPT 系列的模型,不过 GPT 系列对于 MCP 的调用并不理想,目前对于 MCP 支持最好的还是 Claude。

游玩过程可以看我发的视频:https://www.bilibili.com/video/BV1WDdqYfE16/

使用 MCP 让 LLM 玩二刺猿笑传之猜猜呗

https://www.9bingyin.com/archives/try-playwright-mcp.html

作者

bingyin

发布时间

2025-04-13

许可协议

CC BY 4.0

添加新评论