尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

用 agent-browser 自动化 Slack:连接、查未读、搜消息与数据提取实战指南

发布时间:2026/9/19 16:00:26

资讯中心
01
ARTICLE

用 agent-browser 自动化 Slack:连接、查未读、搜消息与数据提取实战指南

用 agent-browser 自动化 Slack:连接、查未读、搜消息与数据提取实战指南
用 agent-browser 自动化 Slack连接、查未读、搜消息与数据提取实战指南【免费下载链接】agent-browserBrowser automation CLI for AI agents项目地址: https://gitcode.com/gh_mirrors/agen/agent-browser本篇指南以 agent-browser 官方 Slack 技能skill-data/slack/SKILL.md为核心讲解如何通过浏览器自动化而非 Slack API接管 Slack 网页端完成检查未读、导航频道、全文搜索、结构化数据提取等常见任务。读完本文你将掌握一套可复制、可脚本化的连接 → 快照 → 交互 → 取证工作流并能用agent-browser的 ref 机制与条件等待原语写出稳定不依赖硬编码元素编号的自动化脚本。技能定位什么是 agent-browser 的 Slack 技能在 agent-browser 中技能Skill是一组以SKILL.md为中心的指令集由 CLI 的skills子命令加载。Slack 技能位于 skill-data/slack/SKILL.md其 YAML frontmatter 定义了触发条件与授权工具name: slack description: Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include check my Slack, what channels have unreads, send a message to, search Slack for, extract from Slack, find who said, or any task requiring programmatic Slack interaction. allowed-tools: Bash(agent-browser:*), Bash(npx agent-browser:*)从源码看技能的发现与加载由 cli/src/skills.rs 实现CLI 会在skills/与skill-data/两个目录中查找含SKILL.md的子目录解析 frontmatter 中的name、description与可选hidden字段并通过agent-browser skills list、agent-browser skills get slack、agent-browser skills get slack --full输出--full会一并返回references/与templates/下的补充文件对应本技能的 references/slack-tasks.md 与 templates/slack-report-template.md。技能目录可通过AGENT_BROWSER_SKILLS_DIR环境变量覆盖。本技能的关键前提是它不调用 Slack API——不需要 OAuth、Webhook 或 Bot Token而是直接驱动浏览器操作 Slack 网页端因此交互对象是屏幕上的可见 UI 与可访问性树accessibility tree。快速开始连接会话与打开 Slack两种入场方式# 方式一连接已打开的浏览器会话典型Slack 已在一个带远程调试端口的 Chrome 中打开 agent-browser connect 9222 # 方式二Slack 尚未运行直接打开网页端 agent-browser open https://app.slack.comconnect 9222的底层实现位于 cli/src/commands.rs 的connect分支当参数是纯数字端口时校验其范围1–65535拒绝 0并映射为{ action: launch, cdpPort: port }当参数以ws://、wss://、http://、https://开头时则映射为{ action: launch, cdpUrl: endpoint }允许直接对接任意 CDP 端点。连接或打开之后立即做一次交互快照确认页面上有哪些可操作元素agent-browser snapshot -i-i/--interactive会为每个可交互元素生成形如e1、e2的 ref 编号。该标志在 cli/src/commands.rs 的snapshot分支中被解析为{ action: snapshot, interactive: true }这些eNref 会在 cli/src/native/actions.rs 中被解析并映射回页面元素成为后续click、fill、get text、screenshot等命令的稳定选择器。核心工作流五步闭环Connect/Navigate打开或连接到 SlackSnapshot用snapshot -i获取带 ref 的交互元素清单e1、e2…Navigate点击标签页、展开分区或进入指定频道Extract/Interact读取数据或执行操作Screenshot截图留存证据。一个最小闭环示例——检查未读频道agent-browser connect 9222 agent-browser snapshot -i # 在快照输出中定位 More unreads 按钮取其 ref agent-browser click e21 # Ref for More unreads button agent-browser screenshot slack-unreads.png常见任务实战检查未读消息未读信息通常分布在三个位置侧边栏的 More unreads 按钮、Activity 标签页的未读计数、以及频道名上的加粗/徽标。逐一排查# 连接并快照定位未读相关元素 agent-browser connect 9222 agent-browser snapshot -i # 切到 Activity 标签页聚合查看全部未读 agent-browser click e14 # Activity tabref 随会话变化 agent-browser wait 1000 agent-browser screenshot activity-unreads.png # 或查看 DMs 标签页 agent-browser click e13 # DMs tab agent-browser screenshot dms.png # 或展开侧边栏 More unreads 列表 agent-browser click e21 # More unreads button agent-browser wait 500 agent-browser screenshot expanded-unreads.png如果 Activity 页出现 Youve read all the unreads说明当前没有未读消息参见 references/slack-tasks.md。导航到指定频道agent-browser snapshot -i # 在列表中找到频道对应的 treeitem ref例如 engineering 频道 agent-browser click e94 # Example: engineering channel ref # 关键用页面内容做条件等待而不是固定 sleep agent-browser wait --fn document.querySelector([data-qa\channel_header\])?.innerText.includes(engineering) agent-browser screenshot channel.pngwait --fn是这里的主角。它在 cli/src/commands.rs 的wait分支中被解析为{ action: waitforfunction, expression: expr }即在页面上下文中反复执行给定的 JavaScript 表达式直到返回真值。注释中特别强调把频道名写入断言这样即使上一个频道的页头仍然存在也不会在切换渲染期间被误判为等待成功——这是避免竞态的关键技巧。搜索消息与线程agent-browser snapshot -i agent-browser click e5 # 搜索按钮典型 ref agent-browser fill e_search keyword agent-browser press Enter # 用 URL 校验搜索是否真正提交防止重复搜索复用旧路由 agent-browser wait --fn location.pathname.includes(/search) new URL(location.href).searchParams.get(q) keyword agent-browser screenshot search-results.pngSlack 搜索支持丰富的过滤语法完整清单见 references/slack-tasks.mdin:channel-name—— 限定频道from:user—— 指定发送者before:2026-02-25/after:2026-02-20—— 时间范围has:file/has:emoji—— 按附件或表情反应过滤。组合示例bug report in:engineering from:alice after:2026-02-20。提取频道清单与结构化数据# 输出 JSON 快照便于程序化解析 agent-browser snapshot --json slack-snapshot.json # 关注 treeitem 元素level2 表示分区section下的频道/条目JSON 快照中值得关注的信息点来自 references/slack-tasks.md 的层级约定level1分区标题External connections、Starred、Channels 等level2分区内的具体频道或条目level3嵌套子项侧边栏中较少见。查看频道详情agent-browser click e_channel_ref agent-browser wait 1000 # 获取频道信息成员、描述等 agent-browser snapshot -i agent-browser screenshot channel-details.png # 滚动浏览消息流 agent-browser scroll down 500 agent-browser screenshot channel-messages.pngscroll命令的解析cli/src/commands.rs支持scroll [direction] [amount] [--selector sel]方向默认down数量默认300。配合--selector可限定滚动容器——处理长频道列表时用它限定侧边栏容器agent-browser scroll down 300 --selector .p-sidebar记录状态与取证# 带元素编号标注的截图方便回看 ref 对应关系 agent-browser screenshot --annotate slack-state.png # 整页截图 agent-browser screenshot --full slack-full.png # 记录当前 URL 与页面标题 agent-browser get url agent-browser get title--annotate在 cli/src/commands.rs 的screenshot分支中映射为annotate: true字段--full映射为fullPage: true。get url/get title分别对应url与title动作见parse_get分支get text selector则对应gettext动作。理解 Slack 侧边栏结构与标签页熟悉侧边栏结构能显著提高导航效率源自 skill-data/slack/SKILL.md- Threads - Huddles - Drafts sent - Directories - [Section Headers - External connections, Starred, Channels, etc.] - [Channels listed as treeitems] - Direct Messages - [DMs listed] - Apps - [App shortcuts] - [More unreads] button切换未读频道列表常见的典型 ref随会话变化仅供参考e12Home 标签页、e13DMs 标签页、e14Activity 标签页、e5搜索按钮、e21More unreads 按钮。references/slack-tasks.md 给出了更完整的经验区间表元素典型 ref 区间定位方法Home 标签页e10–e20snapshot -i \| grep HomeDMs 标签页e10–e20snapshot -i \| grep DMsActivity 标签页e10–e20snapshot -i \| grep Activity搜索e5–e10snapshot -i \| grep SearchMore unreadse20–e30snapshot -i \| grep More unreads频道e30snapshot -i \| grep treeitem进入频道后顶部会出现Messages会话、Files共享文件、Pins置顶消息、Add canvas协作文档等标签页点击对应 ref 即可切换视图获取不同信息。从 Slack 提取数据获取元素文本agent-browser get text e_message_ref解析可访问性树agent-browser snapshot --json output.json解析时关注频道名treeitem 的 name 字段、消息内容listitem/document 元素、用户名含用户信息的 button 元素、时间戳含时间信息的 link 元素。时间戳的识别有专门模式references/slack-tasks.md消息时间戳以链接形式出现其 URL fragment 含 Slack 消息 ID例如https://vercel.slack.com/archives/C0A5RTN0856/p1772036782543189中的p1772036782543189唯一标识该消息。统计未读数# 展开未读分区后统计 treeitem 数量即可估算未读频道数 agent-browser snapshot -i | grep -c treeitem最佳实践优先连接已有会话Slack 已打开时用agent-browser connect 9222比新开浏览器快得多点击前先快照任何click前先执行snapshot -i确认 ref不要凭记忆写死编号导航后重新快照进入新频道/分区后重取快照因为 ref 会变化结构化解析用 JSON需要机器可读输出时使用snapshot --json控制交互节奏快速连续操作间加sleep 1让 UI 完成渲染更新相信可访问性树快照反映的是屏幕阅读器也是你的自动化能看到的内容元素不在快照中多半是被隐藏或需要滚动善用条件等待用wait --fn断言页面真实状态频道名、URL 参数而不是盲目固定等待。局限与边界不走 Slack API纯浏览器自动化无 OAuth、无 Webhook、无 Bot Token会话绑定截图与快照都绑定当前浏览器会话限流风险Slack 可能对高频操作限流必要时在命令间加入延迟单工作区你操作的是自己的工作区不支持跨工作区自动化。调试技巧# 检查页面控制台输出与错误 agent-browser console agent-browser errors # 获取当前页面状态 agent-browser get url agent-browser get title agent-browser screenshot page-state.pngconsole与errors在 cli/src/commands.rs 中分别映射为console/errors动作均支持--clear清空历史。当元素找不到时按 references/slack-tasks.md 的四步排查① 截图确认元素是否在屏screenshot current-state.png并与预期对比② 尝试展开/滚动侧边栏scroll down 300 --selector .p-sidebar后重新快照③ 用get url确认当前所在分区④ 用wait --fn document.querySelector([rolemain])等待页面主区域就绪后重取快照。完整示例一次全量未读检查将 skill-data/slack/SKILL.md 中的完整脚本整理如下可直接保存为 shell 脚本运行#!/bin/bash # 连接 Slack agent-browser connect 9222 # 初始快照 echo Checking Slack unreads agent-browser snapshot -i snapshot.txt # 检查 Activity 标签页 agent-browser click e14 # Activity tab agent-browser wait 1000 agent-browser screenshot activity.png ACTIVITY_RESULT$(agent-browser get text e_main_area) echo Activity: $ACTIVITY_RESULT # 检查 DMs agent-browser click e13 # DMs tab agent-browser wait 1000 agent-browser screenshot dms.png # 检查侧边栏未读频道 agent-browser click e21 # More unreads button agent-browser wait 500 agent-browser snapshot -i unreads-expanded.txt agent-browser screenshot unreads.png # 汇总 echo Summary echo See activity.png, dms.png, and unreads.png for full details进阶任务模式与报告产出references/slack-tasks.md 还收录了多个进阶模式与本技能搭配使用监控指定频道进入频道后可用agent-browser press j跳转到未读位置滚动查看更多消息点击带线程指示的消息进入线程视图提取会话中的用户信息从 JSON 快照的 listitem/document 元素中分离用户名button、时间link、消息正文与表情反应button 上的 emoji 计数跟踪消息反应点击 N reaction(s) 按钮展开截图记录 emoji、数量与反应用户审查置顶消息进入频道后点击 Pins 标签页逐个查看置顶消息的上下文。数据收集完成后可使用 templates/slack-report-template.md 整理产出。该模板提供了标准化的分析报告骨架涵盖未读统计Activity / DMs / Channels 三栏、未读频道与私信明细表、可访问频道总数与分类、活跃频道排行、关键会话摘要、搜索结果汇总、反应与参与度、团队洞察活跃用户/活跃时段、问题观察含严重级别与建议、截图清单以及附录中的原始快照与 JSON 数据区。小结Slack 技能是 agent-browser 浏览器自动化能力的典型应用场景connect复用既有会话snapshot -i建立基于可访问性树的 ref 索引wait --fn提供抗竞态的条件等待snapshot --json打通程序化数据提取最后用screenshot --annotate完成可回溯的取证。理解这些命令在 cli/src/commands.rs 与 cli/src/native/actions.rs 中的解析与执行路径能帮助你写出更稳健、可长期复用的 Slack 自动化脚本。【免费下载链接】agent-browserBrowser automation CLI for AI agents项目地址: https://gitcode.com/gh_mirrors/agen/agent-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。