应用与页面连接
从一句“手机上有没有可调试的 Lynx 页面”出发,看 agent 如何读取所需知识、发现应用,再找到具体页面。
我已通过adb连接android手机,你帮我看看有没有可以调试的Lynx页面?
思路:先读取 agent-lynx 的使用说明,确认如何查找设备上的应用和页面。
agent-lynx skills list找到调试 skill
# 发现 CLI 自带的 skills,找到与设备调试相关的 lynx-devtool。
agent-lynx skills list<available_skills>
<skill>
<name>lynx-devtool</name>
<description>Use when working with Lynx DevTool or debugging a Lynx app, page, or device…</description>
<location>/workspace/node_modules/@lynx-js/skill-lynx-devtool/SKILL.md</location>
</skill>
<!-- Other skills omitted. -->
</available_skills>agent-lynx skills get lynx-devtool说明已加载
# 加载使用说明,并取得 skill 的目录和参考文件清单。
agent-lynx skills get lynx-devtool<skill_content name="lynx-devtool">
Use the `agent-lynx` CLI. The published package is `agent-lynx`.
<!-- Instructions omitted. -->
Skill directory: /workspace/node_modules/@lynx-js/skill-lynx-devtool
Relative paths in this skill are relative to the skill directory.
<skill_resources>
<file>references/troubleshooting/index.md</file>
<!-- Other resources omitted. -->
</skill_resources>
</skill_content>Read · troubleshooting/index.md连接指南
// 按 skills get 返回的目录,读取设备、应用与页面的发现指南。
Read("/workspace/node_modules/@lynx-js/skill-lynx-devtool/references/troubleshooting/index.md")## Discovery Model
In practice:
- one client usually corresponds to one app process such as `LynxExplorer`
- one session corresponds to one Lynx page inside that client
- one device may have multiple clients
- one client may have multiple sessions思路:连接指南区分了应用和页面。我先找这台手机上可调试的应用。
agent-lynx list-clients1 个应用
# 默认通过本地 daemon 发现应用;返回值中的 id 是后续调用使用的 client ID。
agent-lynx list-clients[
{
"id": "android-phone:8901",
"info": {
"App": "LynxExplorer",
"deviceModel": "Pixel 8",
"osType": "Android"
}
}
]思路:找到了 Android 手机上的 Lynx Explorer;继续查看这个应用里的 Lynx 页面。
agent-lynx list-sessions --client android-phone:89011 个 Lynx 页面
# 使用上一步返回的 client ID 查询页面;session_id 标识这个应用里的调试上下文。
agent-lynx list-sessions --client android-phone:8901[
{
"session_id": 1,
"type": "lynx",
"url": "https://example.com/settings.lynx.bundle"
}
]找到了。你的 Android 手机上运行着 Lynx Explorer
,其中有一个可调试的 Lynx 页面,地址是
https://example.com/settings.lynx.bundle。
应用的 client ID 是 android-phone:8901,页面的 session ID 是
1。后续可以用这组目标检查页面结构、读取日志或截图。
从应用到页面
一个设备上可以运行多个 Lynx 应用,一个应用里也可能打开多个页面。这段对话分两次确认目标:
- Client 对应应用进程,由
list-clients返回应用名称、设备信息和 client ID。示例中找到的是 Android 手机上的 Lynx Explorer。 - Session 对应页面,由
list-sessions返回这个应用里的调试上下文及页面地址。选择type为lynx的目标,并保留它的session_id。
后续操作应同时使用实际返回的 client 和 session,确保 agent 操作的是你看到的页面。应用重启或页面重新打开后,再发现一次目标。
让你的应用出现在结果里
在手机上运行 Lynx Explorer,或已集成 DevTool 的应用,开启 Lynx Debug 和 Lynx DevTool,并打开一个 Lynx 页面。上面的示例以这个状态为起点。其他平台参见设备连接说明。
如果发现结果还不完整,可以继续告诉 agent:
agent 可以等待应用连接、打开指定的 bundle URL,并根据设备、应用名和页面地址选择目标。项目开发服务器需要单独运行,bundle URL 必须能从应用访问。
为什么后续调用能接着用
设备命令自动启动本地 agent-lynx daemon。它跨 CLI 调用保持设备连接,并保存快照中的元素引用,让“找到页面 → 检查 → 操作 → 验证”连续进行。参见简介中的架构图。
下一步可以让 agent 检查页面与操作元素,或截图确认当前画面。等待超时、daemon 端口和直接连接模式等配置集中在 CLI 参考。