You see. I act. Neither escapes alone.
你看见,我操作;缺一方都无法逃脱。
SplitSight 是一个为 WebMCP 演示设计的三关人机协作密室。人类看到 Canvas 中的现场线索,Agent 只能通过页面工具读取机关与人类主动共享的观察。任何一方都无法独自通关。
这不是让 Agent 独自解题、最后请人点确认:
HUMAN EYES中的视觉谜底不会出现在 WebMCP 状态或工具返回值中。- 人类每关都要亲自观察并点击答案,共产生三次决定。
AGENT TOOLS可以扫描和改变机关,但在缺少人类观察时会确定性阻断。- 最终出口必须同时匹配 Agent 提案与人类选择。
- HUMAN / AGENT / ROOM 的全部读取、等待、失败与成功都显示在共享因果轨迹里。
Canvas 隔离是明确的游戏能力边界,不是浏览器安全边界;项目不宣称能阻止拥有完整屏幕视觉能力的 Agent 作弊。
Static hosting is required because the app uses JavaScript modules.
cd feast-board
npx serve .Then open the printed http://127.0.0.1:PORT/ URL in the ChatGPT desktop in-app browser. The header should show WebMCP READY · 8 TOOLS.
The interface defaults to English. Use EN / 中文 in the header to switch the entire experience, including the Canvas clues, live instructions, mechanism status, causal trail, toast messages, and localized WebMCP results. The preference is stored locally and switching languages never resets room progress.
页面默认使用英文。可通过顶栏的 EN / 中文 切换完整界面;Canvas 线索、实时提示、机关状态、因果轨迹、Toast 和 WebMCP 返回内容都会同步切换。语言偏好保存在本地,切换语言不会重置密室进度。工具名称和参数值保持英文,以保证 WebMCP 调用稳定。
-
Click
Reset all three rooms(中文界面:重置三关密室). -
Send the prompt shown at the bottom of the page:
Use get_room_state and scan_room. You cannot see clues in HUMAN EYES. Work stage by stage: when a human observation is required, stop and ask me to click it. Read my shared observation, operate the mechanism, and never choose the final exit for me. -
When the Agent stops at the mirror room, watch the Canvas, click
Triangle(三角), then saycontinue. -
In the portrait gallery, watch for the blink, click
Archivist(档案员), then saycontinue. -
In the exit hall, compare the live guardian mark with the two doors, click
Moon Door(月门), then saycontinue. -
Confirm the room reaches
ESCAPED, the human decision counter reads3 / 3, and the causal trail contains HUMAN / AGENT / ROOM events.
The fixed path is deliberate so judges can reproduce the same interaction quickly.
| Tool | Role |
|---|---|
get_room_state |
Read shared progress; never returns visual answers |
scan_room |
Inspect the current mechanism and reveal the next human task |
read_human_observation |
Read only what the human deliberately clicked |
align_mirrors |
Apply the shared symbol observation |
open_compartment |
Open the compartment behind the shared portrait |
analyze_exits |
Compare structural facts without seeing the live guardian mark |
propose_exit |
Record a reversible Agent recommendation |
execute_escape |
Open only the door selected by the human and proposed by the Agent |
npm testThe deterministic suite covers secret redaction, missing-human-input blocks, correction after a wrong observation, explicit sharing, exit override, causal events, and the complete three-decision path.
Static HTML, CSS, Canvas, and JavaScript modules. State is stored in localStorage. There is no backend, model API, in-page chat box, or external asset dependency.