本技能用于在 Speakeasy AI Control Plane(AICP)项目中创作或更新可复用的信号与消息传感器。适用场景是希望将对话消息分类为可复用标签、互斥选项或有序评分的需求。传感器只做分类,不执行访问策略。
主要能力:
-
发现:通过已认证的 Speakeasy 连接调用 list_projects,由用户选定具体项目;安装包本身不授予任何权限。这些工具需要启用信号智能并具备项目实时权限,目前仅面向外部用户。随后调用 find_sensors 和 find_signals 搜索项目内候选对象(需分页时继续翻页),展示候选而非静默选定同名项;只有在用户确认完整判定条件后才复用信号。对已有传感器调用 get_sensor 查看完整有序定义;对共享信号的修改,先用 update_signal 并设 confirmed:false 检查受影响的传感器。
-
定义:确认分类模式——multi_label 评估相互独立的标签;exclusive 选择一个选项;ordered_score 使用 2 到 10 个从低到高排序、各带分类器判据的等级。确定指令、显示名、可选 slug 与可复用信号定义。确定传感器是否启用:创建时 proposal.enabled 默认为 true,更新时省略则保留当前状态;停用的传感器仍可见可编辑,但跳过新的评估,进行中的评估可能完成。消息上下文与分类模式分开设定:proposal.input_strategy 默认 single_message,或 sliding_window;window_size 为 2–10 条消息(含目标消息),默认 5;所有策略均排除系统消息,且不计入窗口大小;滑动上下文按时间顺序包含目标所在对话代内的非系统角色消息,仅分类目标消息,先前消息仅作上下文,历史较短时使用现有消息。更新时省略字段会保留设置(含切换策略时的窗口大小)。确定匹配表达式:创建时省略默认为 message.role == "user";仅暴露 message.role,不得臆造 actor、department、cohort、replay 或 tool 字段;会话摄取目前评估原始用户/助手创建事件(含历史导入),对话记录副本、合成摘要与未知改写不算新目标。可选地调用 preview_sensor_match 以有界、调用方提供的角色示例进行测试,分别报告匹配、不匹配与错误;缺失消息上下文为“未绑定”而非空角色;这仅测试元数据资格,不检索对话记录也不运行推理。
-
预览与确认:优先用 create_sensor 提交包含现有信号 ID 和/或内联 new_signal 定义的 proposal,可原子地同时创建新信号与传感器;若只需可复用目录定义则用 create_signal。更新所选传感器自身字段或有序成员用 update_sensor,刻意修改共享定义用 update_signal。将 proposal.operation 设为工具名。先以 confirmed:false 调用,展示规范化配置、匹配表达式、启用状态、消息上下文与窗口大小、完整信号顺序、草稿理由,以及共享信号更新时返回的每个受影响传感器。预览创建的 ID 为临时值,不是已提交资源。更新时省略字段会保留;提供的 signals 列表会替换整个成员集合,空列表则清空。取得对该确切提案及其共享影响的明确确认后,用相同提案、confirmed:true、返回的 expected_version(来自 version)与 preview_token,以及稳定的 idempotency_key 重新提交。重试不确定请求时保持该键与所有输入不变。版本冲突需重新读取、预览并确认,因为版本覆盖整个项目的配置。
-
校验:对传感器用已提交 ID 调用 get_sensor;对独立信号调用 find_signals 核对其确切 ID 与定义。已提交的启用状态与配置就绪情况,需与主动推理或实际观测读数分开报告,后者这些工具无法证明。需要观测测量时,使用 explore-signal-patterns 工作流与共享分析工具,并指定明确匹配规则与时间窗口。若回执显示 snapshot_scope: verification_unavailable,表示写入成功但新鲜读取失败:保持相同重试键与输入重试校验,而非重新创建;此状态下 target_available 为 false 不能证明已删除;重放的回执只证明历史写入,不证明当前存在。检查 target_available 与最新目标状态,不要通过更改重试键重建已删除目标。可用时展示返回的 dashboard 路径。若该能力不可用,应停止而非绕过其权限或臆造其他工具。
安全提示:绝不索取 API 密钥、密码、令牌、OAuth 码、客户端密钥或机密请求头;使用合成示例而非索取私人对话记录;如用户想提交工作流反馈,需先取得同意再调用 send_platform_mcp_feedback。