TokenRhythm 搜索
That's it. The bundle mounts the provider and switches web search to it automatically — no cordis.patch.yml editing required.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-web-search-tokenrhythm
A web-search provider for DeepSeek Harness that turns the built-in web_search tool into real searches through the Token Rhythm (基元律动) gateway's OpenAI Responses API (web_search tool). No extra account, no new API key — it reuses the key you already store for chat.
Quick start (3 steps)
Run these inside your dsh profile directory (e.g. %USERPROFILE%\.dsh\profiles\web):
# 1. Install the package
pnpm add dsh-web-search-tokenrhythm
// 2. Register the bundle in profiles/web/package.json
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-web-search-tokenrhythm" // ← add this line
]
}
}
# 3. Restart dsh web
That's it. The bundle mounts the provider and switches web_search to it automatically — no cordis.patch.yml editing required.
Prerequisites
- Your gateway must support the OpenAI Responses API with the native
web_searchtool. Token Rhythm does (deepseek-v4-flash-0731, which declareswebSearch: true). Other gateways: check their model metadata before switching. - Store an API key so the provider can authenticate. The default credential reference is
DEEPSEEK_API_KEY— save it through the web UI (Settings → Models) or your credentials file. Point the provider at another reference withapiKeyEnvif you prefer.
Verify it works
In any chat, ask: “帮我搜一下 XXX” or “search the web for XXX”. The response will include real source links.
Configuration
| Key | Default | Meaning |
|---|---|---|
apiKeyEnv | DEEPSEEK_API_KEY | Credential reference resolved for each search. |
baseURL | https://tokenrhythm.studio/v1 | OpenAI-compatible endpoint base; /responses is appended. |
model | deepseek-v4-flash-0731 | Search model; must declare webSearch: true on your gateway. |
maxTokens | 2048 | Upper bound on generated answer tokens. |
maxRetries | 2 | Retries for transient gateway 503 responses. |
Switching to another gateway
Override the row from your own profile cordis.patch.yml (later layers win):
- id: web-search-tokenrhythm
name: dsh-web-search-tokenrhythm
config:
apiKeyEnv: MY_GATEWAY_API_KEY
baseURL: https://my-gateway.example/v1
model: my-web-search-model
Or edit the web-search-tokenrhythm section in the GUI Settings page — it takes effect on the next search without a restart.
Not using a gateway with web_search?
This provider cannot help. Install a different search backend instead (e.g. @deepseek-ai/dsh-web-search-exa or @deepseek-ai/dsh-web-search-perplexity) and set searchProvider to its id.
Troubleshooting
| Symptom | Cause / Fix |
|---|---|
WEB_PROVIDER_CREDENTIAL_MISSING | No key for apiKeyEnv. Save it in Settings → Models or set apiKeyEnv to a reference you have. |
tools.0.input_schema 类型错误 / invalid tool type | The gateway does not support the web_search tool. Switch gateway or provider. |
SERVICE_BUSY (HTTP 503) | Gateway overloaded; retried automatically up to maxRetries. Retry the search later if it still fails. |
| Search works but sources have no titles | Expected: this gateway returns opened-page URLs plus a generated answer; no structured title/snippet. |
How it works
One search issues a full Responses model call with tools: [{ type: 'web_search' }]. The gateway runs server-side retrieval; the model may open several pages (web_search_call items). The provider:
- collects opened-page URLs as citeable
sources[](deduplicated,#ws_call_id=tracking fragments stripped); - takes the model's
final_answertext ascontent; - retries transient
503responses.
Failures surface as WEB_PROVIDER_ERROR; caller cancellation as WEB_ABORTED. MIT licensed.
Development
# Build (TypeScript → lib/)
pnpm exec tsc -b .
# Test (Vitest, 16 cases)
pnpm exec vitest run tests/provider.spec.ts
# Package
npm pack
The package follows the DeepSeek Harness plugin conventions: a Cordis plugin exporting name / inject / apply / Config, plus a bundle patch (cordis.patch.yml) that mounts itself when the package is listed in a profile's dsh.profile.bundles.
License
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.