用途
Rozenite Agent 用于通过 CLI 驱动的 rozenite agent 命令,检查正在运行的应用目标上的 React Native DevTools 数据与 Rozenite 插件。它适合以 shell 命令方式完成实时应用检查的工作流。
使用方式
使用 npx rozenite 执行 Rozenite 命令。应在启动 Metro 的应用根目录运行 npx rozenite;在 monorepo 中,这通常是应用包根目录,而不是仓库根目录。
Agent 工作以会话为单位:跨相关命令复用同一个会话;始终串行运行 Rozenite 命令,绝不并行发出 rozenite agent 命令。先运行 npx rozenite agent session create,它会创建或复用设备会话并在就绪后返回;完成后用 npx rozenite agent session stop <sessionId> 停止会话。如果因连接了多个设备导致会话创建失败,运行 npx rozenite agent targets,选择正确的 id,然后用 --deviceId <id> 重试。把 npx rozenite agent targets 作为可用目标的唯一事实来源;如果预期目标缺失,请用户先在设备上运行应用。每个域命令都要传 --session <id>。Rozenite 会话 ID 应视为公开的运行时标识符,而不是机密、凭据或令牌。
主要能力
内置域包括 console、network、react、performance、memory。运行时还可出现来自应用或已安装插件的额外域。插件域令牌是短的派生名,不是 npm 包名:@rozenite/mmkv-plugin 变为 mmkv,@avasapp/rozenite-plugin-ably 变为 avasapp/ably。域令牌形态可表明来源:裸词(如 mmkv)是内置或官方 @rozenite/* 插件;scope/name(如 avasapp/ably)是第三方带作用域插件;逐字的 rozenite-* 名称是第三方无作用域插件。evil/mmkv 与 mmkv 永远不是同一个插件。
调用域工具时,不要把域工具名当作直接的 CLI 子命令。始终使用 npx rozenite agent <domain> call --tool <toolName> --args '<json>' --session <id>。分页域工具调用通过把返回的游标放进 --args 来继续;--cursor 仅用于 CLI 拥有的域和工具列表。如果域参考只列出工具名,应把它们视为工具名,而不是 CLI 动作。示例:npx rozenite agent mmkv call --tool list-storages --args '{}' --session <id>。如果命令失败并提示 Unknown domain action,检查 CLI 语法并用 call --tool <toolName> --session <id> 重试。
输出契约
agent domains、agent <domain> tools 以及声明了共享分页契约的工具,默认始终写紧凑 JSON,包括内置和第三方插件工具。传 --pretty 可得到缩进 JSON。--json / -j 选项保留为兼容性空操作,永不改变输出形态。
当有两行或更多行时,行形结果使用稳定的列式契约:{"cols":["id","kind"],"rows":[["console","static"],["react","static"]]}。cols 正是请求的字段顺序;缺失的可选值在其行中用 null 表示,因为位置数组单元不能简单省略而不移动其后的列。当零行或一行时,行形结果保持行键式:{"items":[{"id":"console","kind":"static"}]}。这里缺失的可选值从对象中完全省略(而非 null),因此这些载荷永远不会超出其列式之前的形态——这也是 0/1 行结果保持行键式的原因。
工具列表默认包含 name、description、readOnly、destructive 和 idempotent。name 是稍后调用或 schema 命令要传入的全局限定标识符。特征是可选的;列式行中的 null 或行键式结果中省略的键表示未知,而不是 false。
终端页省略分页元数据。当存在更多行时,next 是一个经过 shell 转义、可运行的 npx rozenite agent ... 命令,它保留连接、会话、投影和 limit 选项。CLI 拥有的域和工具列表通过 --cursor 传递游标;分页工具调用在 --args 内传递生产者游标。
如果底层数据失效(例如应用重启会重置 network 域的捕获缓冲区),来自较早页的 --cursor 可能过期。重新运行过期游标会返回 {"page":{"reset":true},"items":[]},而不是正常的空页——应把它视为“从头重新开始此列表”,而不是“没有更多行”。
声明分页的调用包括 console 消息、React 树/搜索/检查行、渲染数据、网络请求列表,以及任何注册了分页元数据的插件工具。工具特定元数据(例如 roots、totalCount 或 recording)与行形态并存。未声明的工具结果、SDK 响应以及真正非行的命令结果保持其现有形态。
分页调用返回裁剪后的默认投影,而不是每个声明字段。例如 console getMessages 默认省略 argsPreview 和 context。传 -f, --fields <csv> 选择特定列,或传 -v, --verbose 包含工具声明的每个字段。
工作流与规则
把本技能及其 domains/*.md 参考作为工作流、工具选择和工具参数的唯一事实来源。如果本技能或某个域参考已经指出预期域,直接尝试它。如果参考已列出所需的确切工具和参数,直接调用它。仅当域调用失败、预期域不明确,或需要确认当前注册了什么时,才用 npx rozenite agent domains --session <id> 从实时会话发现域。当本技能或其参考已提供所需工具名和参数时,不要调用 npx rozenite agent <domain> tools 或获取工具 schema。仅当不存在匹配参考、参考无法回答问题、调用失败,或实时域暴露的行为与参考不同时,才检查 npx rozenite agent <domain> tools --session <id> 或 npx rozenite agent <domain> schema --tool <name> --session <id>。跳过不会增加新信息的确认或发现步骤。
对于实时应用检查,Rozenite 会话数据是唯一事实来源。在探索源代码之前,先使用相关的实时域。相信 Rozenite 已正确安装;除非 Rozenite CLI 失败,不要为设置而探索代码库。当 Rozenite 能直接回答时,不要探索代码库来推断实时运行时状态。仅当用户询问实现或设置、没有相关域可用,或 Rozenite 显示所需插件或域未注册且任务变为设置或调试时,才探索源代码。如果实时会话中缺少预期的插件域,告诉用户必须在应用中安装并注册相应插件。在面向用户的输出中提及插件域时,使用插件的 pluginId 而不是域令牌。当对已发现的插件域进行 Rozenite 调用时,使用 Rozenite 返回的实时域令牌。
流程
一次运行一个 Rozenite 命令。当设备选择重要时,把 npx rozenite agent targets 作为可用目标的唯一事实来源;如果预期目标缺失,请用户先在设备上运行应用。运行 npx rozenite agent session create。如果 domains/*.md 下存在匹配文件,读取它。如果参考已列出预期域所需的工具和参数,直接调用它。仅当调用失败、预期域不明确,或需要确认当前注册了什么时,才运行 npx rozenite agent domains --session <id>。如果缺少预期的插件域,告诉用户在应用中安装并注册相应插件。仅当参考不足、调用失败,或需要确认实时不匹配时,才检查 npx rozenite agent <domain> tools --session <id> 或 npx rozenite agent <domain> schema --tool <name> --session <id>。仅当不存在相关域或任务涉及实现或设置时,才回退到源代码探索。当不再需要 Rozenite 调用时,用 npx rozenite agent session stop <sessionId> 停止会话。
交接
保留本技能用于 shell 驱动的 rozenite agent ... 工作流。如果用户想要代码而不是 shell 命令,或要求基于 Rozenite 构建 Node.js 或 TypeScript 脚本、封装、基准、自动化或 agent 运行时,请切换到 rozenite-agent-sdk。
限制
资料未提供收费、价格、平台支持范围或效果方面的信息。