Skip to main content

vs-search

Search runtime and scene management: verify queries, inspect scenes, debug app readiness, and diagnose recall or scene-config issues.

来源信息

仓库
volcengine/SearchCLI
最近来源活动
2026年10月10日 09:56
检测到的 SKILL.md 语言
英语
星标
1,188
分支
37

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
vs-search
description
Search runtime and scene management: verify queries, inspect scenes, debug app readiness, and diagnose recall or scene-config issues.
category
search
applies_to
codex, agents, external-agent
requires_cli
>=0.1.0
keywords
search debug, search run, query run, search scene, search diagnosis, recall issue, online strategy, boost bury, rerank, synonym, diversity, serving controls, fine-grained operations, query-specific rules
commands
search run, search scene create, search scene list, search scene get, search scene update, app status, app diagnose
# Viking Search ## When to Use Use this skill for: - search query verification - search scene inspection and updates - online result checks - recall or ranking issue diagnosis - separating persistent scene config from request-only runtime parameters - fine-grained operations / serving-controls updates, including query-specific search rules If the user wants automated batch evaluation or similarity tuning across many queries and strategies, use `vs-search-tuning` instead. ## Version Check Before starting this skill workflow, run `vs version check --json`. Continue only when `status` is `up-to-date`. If `status` is `update-available`, stop and tell the user to update the cloned `vs` repository, then run `git pull --ff-only`, `bash ./scripts/install.sh`, and `bash ./scripts/install-skills.sh all --target auto --force` (PowerShell: `scripts/install.ps1` and `scripts/install-skills.ps1`). If the status is `unknown`, stop and report that the CLI version could not be verified. ## Preconditions - an `application-id` is available - if you will edit a scene, you should preferably know the `scene-id` - for fresh apps, be prepared for the runtime not to be ready yet - the agent should treat the installed CLI behavior as authoritative when help text, skill text, and runtime behavior disagree ## Scope Before changing anything, decide whether the user wants: - a persistent search strategy change - a temporary runtime verification - a readiness diagnosis for a failing app This skill stays at the search workflow level. Do not embed low-level API field mappings, payload design, or enum interpretation here. When a concrete command needs exact parameters, first consult `vs-product-qa` and the matching API reference. For `search scene update`, the authoritative scene publish contract is `vs-product-qa/references/api-references/control-plane/scene/PublishSearchSceneV2.md`. ## Commands - `search run`: send a production-style search request - `search scene create` / `search scene list` / `search scene get`: manage search scenes - `search scene update`: update scene configuration - `app status` / `app diagnose`: inspect readiness before blaming the query ## Workflow 1. Start by determining whether the user wants: - a persistent search strategy change - a temporary runtime verification - a readiness diagnosis for a failing app 2. If the request is a persistent search strategy change, use `search scene list/get` first and inspect the current scene before mutating it. 3. Before running any concrete command, consult `vs-product-qa` to confirm the current command behavior and the exact parameter requirements. 4. For a persistent update, resolve and retain the target `application-id`, `scene-id`, and, when a dataset-level config is involved, the exact `dataset-id` before constructing the update payload. Use `search scene get`, `dataset get`, or `app dataset-config get` as appropriate. 5. `Config` supports partial updates: include only the configuration area that should change, while preserving unrelated existing settings. The final update must still carry non-empty `application-id`, `scene-id`, the target `dataset-id` for dataset-level updates, and the requested configuration content. A `ResourceNotFound.Application` response must trigger a read/identity check, not a blind retry. 6. Never use `search scene update` with an incomplete payload to probe the service. Do not send `--data`, `--config`, or other write flags with placeholder or identity-only JSON. Use only read-only commands such as `--help`, `search scene get`, `dataset get`, `app dataset-config get`, or `search scene list` to inspect command behavior, schema, or current state. 7. Use `search run` for verification requests and `search scene update` for persistent scene changes. The persistent update path must publish through `PublishSearchSceneV2`. 8. After every scene mutation, immediately read the scene back with `search scene get` and verify that the intended change is visible online. 9. If a fresh app fails, check `app status` and then `app diagnose`. 10. Only after readiness is clear should you focus on recall quality or scene configuration. 11. If the command behavior conflicts with the skill text or `--help`, trust the installed CLI behavior first, and only then inspect repository code when needed to explain or fix the gap. ## References - `references/search-scene-natural-language-routing.md`: workflow-oriented mapping from natural-language search-scene requests to the first config area or workflow you should inspect - `../vs-product-qa/references/api-references/control-plane/scene/PublishSearchSceneV2.md`: authoritative SearchSceneV2 publish payload, enum-like string values, and validation notes for persistent scene updates ## Customer Environment Principle - In customer environments, assume repository source code is unavailable. - Execute tasks using only the installed skills, the packaged `vs` CLI surface (`--help`, command output, and observed runtime behavior), and explicit user-provided information. - Do not rely on reading local repository source files, generated repo snapshots, or implementation details to decide runtime actions. - If the installed CLI behavior conflicts with a skill, trust the installed CLI behavior first. - If the skills and the packaged CLI still do not provide enough information to proceed safely, stop and ask the user instead of searching source code. ## Constraints - Before executing any concrete `vs ...` command in this search workflow, first consult `vs-product-qa` to verify the current command surface, required flags, payload fields, input format, and allowed values. Only after that check may you finalize parameters and run the command. - Before building a `search scene update` payload, consult `vs-product-qa/references/api-references/control-plane/scene/PublishSearchSceneV2.md` for the concrete SearchSceneV2 field semantics, enum-like string values, and validation constraints. The routing reference only identifies the config area; it is not sufficient for final payload values. - Never probe the service with an incomplete write payload. Before executing `search scene update`, validate the complete request envelope: `ApplicationId`, `SceneId`, and, for dataset-level updates, `Config.PerDatasetConfigs[].DatasetId` plus the intended partial `Config` block must all be present and non-empty. For command or API discovery, use read-only commands only; an invalid `update --data` request is not a valid probe. - When the user request includes a mode/model qualifier such as `strong`, `weak`, `semantic priority`, `image similarity`, `multimodal`, `always`, or `suggestion_only`, do not treat enabling the feature as sufficient. Set the corresponding mode/model/config field explicitly and verify that exact value in the readback response. - For search item-scope filtering, do not invent `FilterConfig.RuleId`. Use `RuleId` only when reusing an existing stored `search_filter` rule. For a new filter, send `FilterConfig.Config` and optional `Name`; the backend creates or upserts the backing rule during non-dry-run publish and returns the generated `RuleId` in scene readback. - Parent/variant search result scope is a persistent scene update, not a scene-create option. Do not pass item-hierarchy flags to `search scene create`; create the scene first, then use `search scene update --item-dataset-id <id> --item-type-result variant|parent` or the equivalent `Config.PerDatasetConfigs[].FilterConfig.ItemTypeFilter` update. - `FilterConfig.ItemTypeFilter` is schema-dependent: it is valid only when the item dataset has a paired ItemType and ParentId business attribute and the ItemType field is filterable. It is independent from reusable item-scope filters and should not be modeled as `FilterConfig.RuleId`. - **Field name case sensitivity**: All dataset field names (used in `ShuffleConfig.Rules[].FieldName`, `ShuffleExpression.field`, `BoostBuryCondConfig.Rules[].Config.field`, `FilterConfig.Config.field`, `AuxiliaryPools[].Filter.field`, etc.) are **case-sensitive**. Never infer or normalize field name casing from the user's natural-language description. Before writing any field name into a config, first look up the exact field name from the dataset schema or data-config via `dataset get --id <dataset-id> --full` or `app dataset-config get --application-id <id> --dataset-id <id> --full`, and copy the field name exactly as it appears there (case-for-case). If the field name you have doesn't match any field in the schema, stop and ask the user to confirm which field they mean instead of guessing. - When an app is bound to exactly one dataset, the CLI can infer `dataset-id` - For fresh apps, treat readiness as the first hypothesis before blaming the query - Prefer public `vs search ...` commands over bypassing the CLI and calling lower-level APIs directly - Use `search scene update` for persistent search behavior and do not invent low-level API mappings inside this skill - Dictionary import/binding is part of the persistent scene workflow: after the dictionary is created and terms are written, update the target scene's V2 `DictIds` field and publish the scene. - Do not use `dict bind-scenes` or the `BindDictToScenes` API as a substitute for `search scene update`. A dictionary-to-scene association is not sufficient unless the target scene's configuration is published and confirmed by `search scene get`. - For natural-language scene-change requests, use `references/search-scene-natural-language-routing.md` as the routing layer; if the target is a rule-resource workflow such as filter-item-scope, do not reduce it to a single inline scene field edit - Do not assume `--help`, skill text, and the installed command implementation are perfectly aligned; verify the actual command behavior before making high-risk scene changes - For scene updates, prefer a readback check after mutation instead of assuming the write succeeded - If a scene update unexpectedly fails or appears to no-op, verify the accepted command behavior and parameter requirements before retrying - If a command failure or user follow-up turns into a product concept, capability, API field, purchase, billing, or general troubleshooting question outside this search workflow, temporarily hand off to `vs-product-qa`; return to this workflow only after the grounded product answer is complete.
在 GitHub 查看