Agent 能调用的客户端动作
Floatboat 里的 Agent 能直接替你操作客户端的全部动作,一共 106 个:每个做什么、会不会改东西、在哪能用。
你在对话里说“把文件浏览器收起来”“把这几个旧任务归档”,Agent 会用一个叫 host_action 的工具替你去做。它能做的事是一份固定的清单,清单外的事它做不了,也绕不过去。
这一页把这份清单完整列出来,一共 106 个动作。拿不准能不能交给它某件事,或者在「工作细节」里看到一行 host_action 不知道是什么意思,来这里查就行。想先学怎么跟它说,看让 Floatboat 替你动手。
查表前先知道两件事
它不会先问你。 这些动作执行前都不弹确认框,你一说它就做。所以要删东西、装东西、往外发东西时,把“是哪一个”说清楚。
「类型」一栏告诉你这个动作影响有多大:
- 只读:只看,什么都不改。
- 改界面:只改你眼前这个窗口的样子。关掉或切回去,就恢复原样。
- 改数据:会改你电脑上的数据,但都能改回来,比如重命名、归档、换快捷键。
- 影响大:删除、安装、对外发布、运行自动化、联网检查更新,或者退出应用。交代这类事时多说一句具体是哪个。
类型后面跟着「当前窗口」的,只在你正在聊天的这个 Floatboat 窗口里能用。如果请求来自手机上的聊天软件、定时任务、日程或 Memo,就没有“当前窗口”可用,这些动作会直接失败,不会跑去动别的窗口。
空间与任务
整理空间和任务时用到的都在这里:查找、新建、重命名、置顶、归档、删除。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
workspace.list | 列出你能看到的空间 | 只读 |
workspace.get | 看某个空间的基本信息 | 只读 |
session.list | 列出任务,不读里面的对话 | 只读 |
session.get | 看某个任务的状态和用的模型 | 只读 |
session.list_messages | 一页一页地读某个任务的对话记录 | 只读 |
session.read_message | 一条消息太长时,只读其中一段 | 只读 |
session.search_messages | 在所有任务的对话里搜索,可以限定空间、任务或时间 | 只读 |
workspace.create | 用你指定的文件夹新建一个空间 | 改数据 |
workspace.rename | 给空间改名 | 改数据 |
workspace.open | 打开一个已有的空间 | 改数据 |
workspace.close | 关掉一个暂时不用的空间,什么都不删 | 改数据 |
workspace.promote_temporary | 把临时空间转成正式空间 | 改数据 |
workspace.set_pinned | 置顶空间,或取消置顶 | 改数据 |
workspace.set_archived | 归档空间,或取消归档 | 改数据 |
session.create | 在某个空间里新建一个任务,先不发消息 | 改数据 |
session.open | 打开一个已有的任务 | 改数据 |
session.close | 关掉一个暂时不用的任务,对话记录还在 | 改数据 |
session.rename | 给任务改名 | 改数据 |
session.fork | 把一个任务复制成新任务,之前的对话全部带上 | 改数据 |
session.set_pinned | 置顶任务,或取消置顶 | 改数据 |
session.set_archived | 归档任务,或取消归档 | 改数据 |
session.bulk_set_archived | 一次归档或取消归档你点名的任务,最多 50 个 | 改数据 |
session.set_model | 给任务换一个模型 | 改数据 |
workspace.activate | 切到一个已经打开的空间 | 改界面 · 当前窗口 |
session.activate | 切到一个已经打开的任务 | 改界面 · 当前窗口 |
session.navigate | 打开并显示任意一个任务,关掉的、归档的也会找回来 | 改数据 · 当前窗口 |
session.change_data_processor | 把一个没在运行的任务换到另一家模型服务商。从下一轮起,之前的对话会交给新的服务商处理 | 影响大 |
workspace.delete | 删除一个已归档的空间。只删 Floatboat 里的记录,电脑上的文件不动 | 影响大 |
session.delete | 永久删除一个已归档的任务和它的对话记录,文件不动 | 影响大 |
session.bulk_delete | 一次永久删除你点名的已归档任务,最多 50 个;只要有一个对不上,整批都不删 | 影响大 |
批量归档、批量删除一次最多 50 个。要清理的任务更多,分几次说就好。
界面与预览
想让它帮你收起面板、打开设置、在预览里翻到某一页,用的是这些。它们大多只改眼前的窗口,不碰你的数据;往输入框附上引用这一项例外,算「改数据」。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
ui.set_panel_visibility | 显示或收起侧边栏、文件浏览器、浏览器、对话或 Combo 面板 | 改界面 · 当前窗口 |
ui.open_surface | 打开任务库、已归档空间、自动化、设置、命令管理、Combo 商店或通知 | 改界面 · 当前窗口 |
ui.focus_surface | 切到上面这些已经打开的页面 | 改界面 · 当前窗口 |
ui.close_surface | 关掉上面这些页面,里面的内容不受影响 | 改界面 · 当前窗口 |
ui.restore_surface | 把刚关掉的页面重新打开 | 改界面 · 当前窗口 |
ui.activate_window | 把 Floatboat 窗口带到最前面 | 改界面 · 当前窗口 |
composer.prefill | 往输入框里填一段文字,不发送 | 改界面 · 当前窗口 |
composer.attach_reference | 往输入框里附上一个文件或其他引用,不发送 | 改数据 · 当前窗口 |
preview.open | 在预览里打开一个文件 | 改界面 · 当前窗口 |
preview.goto_location | 让预览跳到某一行、某一页或某一节 | 改界面 · 当前窗口 |
preview.reload | 重新加载预览 | 改界面 · 当前窗口 |
preview.close | 关掉预览 | 改界面 · 当前窗口 |
设置、快捷键、通知和账号
这里能查设置、改快捷键、处理通知、看账号余额。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
settings.get_preference | 看一项设置现在是什么 | 只读 |
settings.set_preference | 改一项设置。能改的只有四项:界面语言、外观主题、提示音、Markdown 从右往左排版 | 改数据 |
shortcut.list | 列出所有快捷键 | 只读 |
shortcut.set_binding | 给某个操作设一个快捷键 | 改数据 |
shortcut.unbind | 去掉某个操作的快捷键 | 改数据 |
shortcut.reset | 把某个操作的快捷键改回默认 | 改数据 |
notification.list | 列出通知,只看标题这类摘要 | 只读 |
notification.set_read | 把通知标成已读或未读 | 改数据 |
notification.show_native | 把一条通知用系统通知弹出来 | 改数据 |
notification.open | 打开通知对应的页面 | 改界面 · 当前窗口 |
account.get_summary | 看当前账号、会员、订阅和积分余额,看不到账单明细 | 只读 |
platform.get_runtime_component_status | 看 Python 等运行组件装好了没有 | 只读 |
platform.set_keep_awake | 让电脑在某个任务跑完前别睡着,最长 4 小时,到点自动取消 | 改数据 |
app.quit | 退出 Floatboat。如果还有没发出去的输入或没存的草稿,它会先停下 | 影响大 · 当前窗口 |
命令、Skill、Combo 和工作台
这一组管的是你装进 Floatboat 的东西:保存的命令、Skill、Combo 和工作台。每个动作影响多大,以表里的类型为准:大部分安装、登记、提交、删除类的动作都算「影响大」。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
command.list | 列出你保存的命令 | 只读 |
command.get_metadata | 看某个命令的基本信息 | 只读 |
command.create | 新建一个命令,先不执行 | 改数据 |
command.update | 修改一个命令 | 改数据 |
command.apply_to_composer | 把一个命令填进输入框,不发送 | 改界面 · 当前窗口 |
command.delete | 删除一个自定义命令 | 影响大 |
skill.list | 列出 Skill | 只读 |
skill.get_metadata | 看某个 Skill 的基本信息 | 只读 |
skill.register_host | 把一个文件夹登记成放 Skill 的地方 | 影响大 |
skill.scan_source | 看看登记过的文件夹里有哪些 Skill,只看不装 | 影响大 |
skill.install | 安装一个扫描到的 Skill | 影响大 |
skill.import_github | 从 GitHub 仓库的某个固定版本导入一个 Skill | 影响大 |
skill.materialize | 把 Skill 放进别的 Agent 工具,或放进你的 Combo 草稿 | 影响大 |
skill.remove | 从别的 Agent 工具里移除一个没在用的 Skill | 影响大 |
combo.list_catalog | 浏览市场里的 Combo | 只读 |
combo.get_marketplace_detail | 看市场里某个 Combo 的详情 | 只读 |
combo.list_installed | 列出你装了哪些 Combo | 只读 |
combo.get_runtime_status | 看某个已装的 Combo 运行得怎么样 | 只读 |
combo.install | 安装市场里某个 Combo 的当前版本 | 影响大 |
combo.update | 把已装的 Combo 升到市场里的当前版本 | 影响大 |
combo.set_session_binding | 让一个已装的 Combo 在当前任务里打开或关掉 | 影响大 |
combo.uninstall | 卸载一个 Combo | 影响大 |
combo.publish | 把你自己做的 Combo 提交到市场审核 | 影响大 |
workbench.list | 列出你电脑上的工作台 | 只读 |
workbench.get | 看某个工作台的源码放在哪、运行得怎么样 | 只读 |
workbench.open | 在当前空间里打开一个工作台,和对话并排显示 | 改界面 · 当前窗口 |
Memo、自动化和日历
记一条 Memo、手动跑一次自动化、订阅一个日历,都在这一组。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
memo.list | 列出 Memo 的标题 | 只读 |
memo.capture | 把一段文字或内容存成一条新 Memo | 改数据 |
memo.open | 打开一条 Memo | 改界面 · 当前窗口 |
automation.list | 列出你的自动化 | 只读 |
automation.get | 看某个自动化是怎么设置的 | 只读 |
automation.list_runs | 看某个自动化跑过哪几次 | 只读 |
automation.get_run | 看某一次运行的状态和结果 | 只读 |
automation.run_now | 马上跑一次某个自动化 | 影响大 |
automation.cancel_run | 取消一次还在排队或正在跑的运行 | 影响大 |
calendar.list_subscriptions | 列出你订阅的日历 | 只读 |
calendar.get_guardian_opportunities | 看「日程准备」挑出了哪些值得提前准备的日程 | 只读 |
calendar.refresh_subscription | 马上刷新一个订阅的日历 | 改数据 |
calendar.add_subscription | 用一个日历链接或 .ics 文件新建订阅 | 影响大 |
calendar.remove_subscription | 删除一个日历订阅,连同从它导入的日程 | 影响大 |
calendar.enable_system_source | 接入 macOS 系统日历,前提是你已经授权 | 影响大 |
calendar.disable_system_source | 不再读取 macOS 系统日历,你自己的数据留着 | 影响大 |
calendar.publish_feed | 把一段时间的日程发布成一个公开的日历链接 | 影响大 |
页面和更新
可以让它看看你发布过的页面,或者检查、下载、安装新版本。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
page.get | 看你已发布页面的基本信息 | 只读 |
update.get_status | 看现在是不是正在检查、下载或等着安装更新 | 只读 |
update.check | 去官方发布渠道检查有没有新版本 | 影响大 |
update.download | 下载新版本并校验文件 | 影响大 |
update.install | 装好更新并重启。如果还有没发出去的输入或没存的草稿,它会先停下 | 影响大 · 当前窗口 |
如果你的 Floatboat 是由应用商店负责更新的,就没有这 4 个 update.* 动作。
两个辅助动作
这两个不替你做事,是它用来确认自己能做什么、做成了没有的。
| 动作 | 它会做什么 | 类型 |
|---|---|---|
host.list_capabilities | 列出这次对话里它现在能用的动作 | 只读 |
host.get_action_status | 某个动作没返回结果时,回头查它到底做成了没有 | 只读 |
host.list_capabilities 里没列出某个动作,只说明这次对话里用不了,不代表 Floatboat 没有这个功能。
清单里没有的
下面这些事它不用 host_action 做,或者干脆做不了:
- 读写文件、运行命令、操作 Git。 这些走 Agent 平常的文件和终端工具。它要写文件、跑命令时,你会先看到「需要权限确认」。
- 上面四项以外的设置。 其它设置要你自己到设置页里改。
- 发布或取消发布页面。 它只能查看已发布页面的信息。
- 操作别的软件。 它只管 Floatboat 自己。
遇到问题?
它说某个动作不能用。 看看这个动作是不是标着「当前窗口」。是的话,要在你正在聊天的 Floatboat 窗口里说;从手机聊天软件或定时任务发起时用不了。
它说找不到要删的东西。 删除只对已归档的空间和任务有效。先让它归档,再让它删除。
某个动作一直没返回结果。 跟它说“查一下刚才那一步做成了没有”。它会用 host.get_action_status 去确认,不会再做一遍。
接下来
- 怎么跟它说、怎么看它做了什么:让 Floatboat 替你动手
- 自己写一个工作台:用外部 Agent 开发工作台