CocoScout 是 CocoPlus 体系中一个后台 subagent,负责在 Build 阶段执行前以及直接调用 persona 前自动触发,对可用上下文来源按与当前任务的相关性进行排序,并将最相关的前 k 条注入到智能体会话中。它从不直接与开发者交互。
用途
CocoScout 的核心目标是相关性排序的上下文加载(relevance-ranked context loading)。它属于 UserPromptSubmit 钩子管线中的 Tier 2 操作,在 Tier 1 确定性检查之后触发。Tier 1 由钩子内联执行(<50ms),负责命令透传、persona 路由和上下文模式标志;Tier 2(本技能)为异步 subagent,负责上下文打分、注入和审计;Tier 3 为批量或非周期操作(如 session-end.js 的审计刷新、经验提升、grove 重新索引),没有截止时间约束。
主要能力
任务上下文识别:读取来自调用上下文(flow.json 的 stage 描述或直接 persona 提示词)的当前任务描述,识别 persona 类型(data-engineer、data-scientist、analytics-engineer、data-analyst、bi-analyst、data-product-manager、data-steward、chief-data-officer),识别任务中提到的 Snowflake 对象(表、视图、函数、schema),以及命名的 Cortex AI 函数(如 AI_COMPLETE、AI_CLASSIFY、AI_EXTRACT、AI_FILTER、AI_SENTIMENT、AI_TRANSLATE、AI_EMBED、AI_SIMILARITY、AI_REDACT、AI_PARSE_DOCUMENT、AI_TRANSCRIBE、AI_AGG、AI_COUNT_TOKENS)。
双视角相关性打分:对每个上下文条目从技术相关性和领域相关性两个维度各打 0-1 分,复合分数 = (技术权重 × 技术分) + (领域权重 × 领域分)。persona 权重不同:数据工程师、数据科学家、分析工程师偏向技术(70% 技术 / 30% 领域);数据分析师、BI 分析师偏向领域(60% 领域 / 40% 技术);数据产品经理、数据管家、首席数据官以领域为主(80% 领域 / 20% 技术)。每个来源类别加载分数高于 0.4 阈值的前 3 项,低于阈值的条目即使在该类别中最佳也被排除。
来源类别打分:覆盖 CocoGrove patterns(按函数名和领域词关键词重叠计分)、CocoContext standards(AI 函数任务对应 approved-models.md 与 quality-thresholds.md,部署任务对应 governance-gates.md,schema 任务对应 naming-conventions.md)、Environment Inspector 快照(快照中提及任务提示词里的 Snowflake 对象则高分)、Prompt archaeology(优化任务中同一函数提示词的先前版本高分)、CocoDream lessons(优化任务中相似函数类型的已提升经验高分)。
Anchor Lens 第三相关性维度:若存在 grove/anchors/catalog.md 则加载,用字符串匹配(非 embedding,运行时 <50ms)对照 anchor 目录。识别模式将任务描述映射到 anchor 名称(如 "handle edge cases" → Boundaries, EHRB-Cortex Pattern;"evaluation inconsistent" → LLM-Evaluations;"improve accuracy" → Evaluation-Before-Optimization Discipline;"schema change" → EHRB-Cortex Pattern, Surgical Changes;"documentation" → Diátaxis Framework, Docs-as-Code)。无识别匹配时使用引导模式回退。每个 persona 对 anchor 的权重不同。
Cortex 文档获取:若任务提到任何命名的 Cortex AI 函数,通过 WebFetch 获取其当前 Snowflake 文档;若 WebFetch 超过 3 秒超时则跳过并记录到 hook-errors.log。
上下文前导注入:将选中的上下文格式化为结构化前导,前置到 agent 提示词中,列出每个来源条目及其纳入原因;没有超过阈值条目的类别则省略。
审计记录:向 .cocoplus/hook-log.jsonl 追加事件记录,包含事件名、ISO 8601 时间戳、任务描述前 100 字符、已加载条目列表和超时跳过的来源列表。
使用方式
CocoScout 由系统自动触发,在 Build 阶段执行前和直接 persona 调用前通过 fire-and-forget execFile 方式生成,无需开发者手动调用。它 MUST 在 Haiku 上运行,MUST 在 5 秒内完成,超时则优雅降级跳过慢来源;MUST NOT 加载低于相关性阈值的上下文,即使它是该类别中唯一可用的条目;文档获取 MUST 使用 WebFetch(Coco 原生),不使用外部 HTTP 库;无持久状态,每次调用都是短暂的。
适用场景
适用于 CocoPlus 管线中需要对上下文来源进行相关性排序与注入的场景,尤其是数据工程、数据科学、分析工程、数据分析、BI 分析、数据产品管理、数据治理等 persona 相关任务,以及涉及 Snowflake 对象和 Cortex AI 函数的任务。
限制
CocoScout 不直接与开发者交互,也不出现在帮助文本中。它不应因排序不确定就加载所有上下文文件,不应花费超过 scout 时间预算去提升相关性,不应使用非 Coco 原生 HTTP 机制获取文档,也不应直接暴露给开发者。超时和缺失来源会优雅降级而不阻塞调用方 agent。
完成标准
当当前任务已完成 persona、Snowflake 对象名和 Cortex AI 函数名的分析,相关上下文已按技术、领域和 anchor 三个视角排序,仅有超过相关性阈值的上下文被纳入注入前导,且超时与缺失来源在不阻塞调用 agent 的情况下优雅降级时,该后台技能即告完成。