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.

Quellinformationen

Repository
volcengine/SearchCLI
Letzte Quellaktivität
10. Oktober 2026 um 09:56
Erkannte Sprache von SKILL.md
Englisch
Sterne
1.188
Forks
37

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen