| name | cloud_space_summary |
| description | 宿主 App 云空间导航与阅读助手。只要用户提到“云空间”,就优先使用此技能。此技能的第一职责是让 Agent 知道如何进入云空间:主界面左上角头像 -> 个人中心 -> 云空间。进入云空间后,再根据用户的具体提示词和当前页面视图继续规划动作,例如查看有哪些文档、总结标题、继续往下读取更多条目,或定位特定资料。不要把任务预先限制成固定场景。 |
| always | false |
| routing_hints | {"task_type":"cloud_space_read","strong_markers":["云空间","云盘","云文档","cloud space"],"weak_markers":["文档","文件","总结","内容"],"negative_markers":["发消息","打卡","日程"],"requires_primary_marker":true} |
| execution_hints | {"kind":"ui_navigation","steps":[{"activity":"MainActivity","target":"左上角个人中心入口","aliases":["左上角头像","左上角个人中心","左上角我的","头像","个人头像","我的头像","个人中心","我的","me","profile","avatar"],"region":"top_left","anchor_type":"profile_entry","container_role":"header","fallback_strategy":"top_left_header_entry","action":"tap"},{"activity":"MeMainActivity","target":"云空间","aliases":["云空间","云盘","云文档","cloud space","cloud"],"action":"tap"},{"activity":"HWBoxRecentlyUsedActivity","action":"readout","goalReached":true}]} |
云空间导航与阅读助手
帮助 Agent 在宿主 App 中进入云空间,并在进入后基于用户目标和当前视图继续规划。
触发条件
此技能应该在以下情况下触发:
- 用户提到“云空间”
- 用户要求进入云空间
- 用户要求查看云空间里有什么
- 用户要求总结云空间中的文档、资料、文件或记录
- 用户要求在云空间里查找某类内容
注意:
- 只要用户提到“云空间”,就优先加载此技能。
- 此技能的第一职责是“告诉 Agent 如何进入云空间”。
- 进入云空间后,不要默认只做“总结文档”。
- 进入云空间后,应结合用户的提示词和当前页面视图,决定是总结、继续读取、定位特定项,还是做别的阅读类动作。
固定入口路径
云空间入口路径固定如下:
- 在主界面找到左上角头像
- 点击头像,进入个人中心
- 在个人中心中找到“云空间”图标或入口文案
- 点击进入云空间
不要跳步骤,不要假设已经在云空间页。每次执行前都先看页面。
核心原则
- 先进入云空间,再结合用户目标做细化规划
- 每一步点击前都先调用
android_view_context_tool
- 点击必须基于当前 observation 的 bounds 计算
x/y
- 进入云空间后,只基于当前可见内容回答,不猜测页面外信息
- 如需继续读取更多内容,可以受控滑动,但不要卡死在那一直滑动
工作流程
步骤 1:先看当前页面
优先调用 android_view_context_tool,判断当前页处于以下哪一类:
建议调用:
{
"targetHint": "主界面、个人中心或云空间入口"
}
如果当前已经在云空间页面:
- 不需要重复导航
- 直接进入“根据用户目标继续规划”步骤
如果当前不在云空间页面:
步骤 2:进入个人中心
如果当前页面是主界面,并且可见左上角头像:
- 从最新 observation 中找到头像元素 bounds
- 计算中心点作为
x 和 y
- 调用
android_gesture_tool 执行 tap
tap 参数必须包含:
x
y
observation.snapshotId
observation.referencedBounds
observation.targetDescriptor
点击后必须重新调用 android_view_context_tool,确认已经进入个人中心。
如果页面上没有明确头像,只有 execution_hints 显式配置 fallback_strategy=top_left_header_entry 时,runtime 才可以使用保守左上角坐标恢复;否则不要猜测位置。
步骤 3:进入云空间
如果当前页面已经是个人中心:
- 从最新 observation 中找到“云空间”图标或文案
- 从该元素 bounds 计算
x 和 y
- 调用
android_gesture_tool 执行 tap
- 再次调用
android_view_context_tool,确认已经进入云空间页面
不要只说“点云空间”,不要省略 x/y 或 observation。
步骤 4:根据用户目标继续规划
一旦进入云空间,不要把任务写死成单一路径。
应该先判断用户的真实目标,例如:
- “看看有哪些文档”
- “总结一下都是什么内容”
- “找某类文件”
- “继续往下看更多”
- “打开某个具体文档”
然后再基于当前可见视图决定下一步。
如果当前页面已经足够支持回答,就直接回答。
如果当前可见证据不足,再进行受控补读。
云空间页面上的常见阅读策略
场景 1:查看有哪些文档
优先提取当前可见的:
- 文档标题
- 分组/栏目名
- 时间、标签、类型(如果可见)
如果只能明确看到标题:
场景 2:按标题总结都是什么内容
在提取可见标题后,总结:
- 当前有哪些文档
- 从标题上看,它们大致涉及哪些主题
- 明确说明总结范围只基于当前可见内容
场景 3:需要继续往下读取
只有在以下情况下才继续滑动:
- 当前可见信息明显不足
- 用户明确要求“多看一些”“继续往下看看”“尽量完整一点”
滑动规则:
- 从最新 observation 中明确选择云空间列表容器
- 使用该容器的
observation.snapshotId 和 observation.referencedBounds
- 调用一次
android_gesture_tool
action=swipe
direction=down
amount=small 或 medium
- 再调用一次
android_view_context_tool
- 合并新旧内容并去重
限制:
- 最多补读 2 次
- 每次滑动后必须重新看页面
- 如果没有新增信息,就停止
- 不要卡死在那一直滑动
- 不要来回反向滑动,除非用户明确要求
去重规则
多次读取后,如果出现重复条目,优先按以下字段近似去重:
不要把同一条内容重复计入回答。
输出要求
输出要始终满足:
- 基于当前可见证据
- 简洁
- 不猜测页面外信息
- 明确说明回答范围
例如:
我当前在云空间里看到这些文档:
1. ...
2. ...
3. ...
从标题上看,主要涉及:
- ...
- ...
说明:以上结论基于当前可见的云空间内容。
如果补读过,也要说明:
- “以上结论基于当前屏幕 + 向下补读后的可见内容”
决策规则
| 条件 | 决策 | 原因 |
|---|
| 用户提到云空间 | 立即加载此技能 | 先解决入口路径问题 |
| 当前已在云空间页 | 直接按用户目标继续规划 | 避免重复导航 |
| 当前在主界面且看得到头像 | 先进入个人中心 | 路径固定 |
| 当前在个人中心且看得到云空间入口 | 进入云空间 | 路径固定 |
| 进入云空间后当前证据已足够 | 直接回答 | 避免过度探索 |
| 当前可见信息不足且用户要求更多 | 最多补读 2 次 | 控制动作成本 |
| 滑动后没有新增信息 | 立即停止 | 避免卡住 |
| 只能看到标题 | 只按标题回答 | 保持可信 |
错误处理
找不到头像
如果主界面上没有明确左上角头像:
我当前没有在页面上明确看到进入个人中心的头像入口,暂时还不能继续进入云空间。
找不到云空间入口
如果已经进入个人中心,但没看到云空间图标或文案:
我已经进入个人中心,但当前可见区域里没有明确看到“云空间”入口,暂时还不能继续进入。
云空间页没有足够可读内容
如果已经进入云空间,但当前页面上没有看到足够清晰的内容:
我已经进入云空间,但当前页面上没有看到足够清晰的内容,暂时无法可靠回答。
示例对话
示例 1:用户只提到云空间
用户: 帮我看一下云空间
Agent:
- 先看当前页面
- 如果不在云空间,就按“头像 -> 个人中心 -> 云空间”进入
- 进入云空间后,再根据当前页面内容和用户意图决定下一步
示例 2:进入后总结文档
用户: 看看云空间里有哪些文档,顺便总结一下
Agent:
- 先进入云空间
- 读取当前可见文档标题
- 基于标题做总结
示例 3:进入后继续补读
用户: 进云空间后再往下看一点,帮我总结完整些
Agent:
- 先进入云空间
- 提取当前可见标题
- 受控向下滑动补读
- 再总结