universal-search
Universal search provider for DeepSeek Harness web capability seam, supporting multiple API formats.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 24, 2026
- Updated
- Aug 24, 2026
Introduction
@deepseek-ai/dsh-Universal-Search
中文文档 | English
Universal search provider for DeepSeek Harness web capability seam, supporting multiple API formats.
Overview
This plugin registers a universal search provider in ctx.web, enabling the agent to perform web searches using various API providers. It supports OpenAI-compatible APIs, DeepSeek Anthropic format, and custom providers.
Problem Solved
- Provides web search capability using multiple API providers
- Integrates with DeepSeek Harness's web capability seam (
ctx.web) - Supports credential management through the harness's credential system
- Enables the agent to search the web and return structured results
- Allows users to choose their preferred search API provider
Implementation
- Uses a modular provider architecture
- Supports OpenAI-compatible APIs (including Xiaomi MiMo, Ollama, etc.)
- Supports DeepSeek Anthropic format
- Normalizes search results to a common format
- Configurable model, token limits, and custom headers
Default Configuration
The default configuration uses deepseek-official, which reuses the DeepSeek API Key configured in Settings > Models.
Custom API Configuration (Recommended)
The default configuration uses DeepSeek, but you can configure other API providers:
Method 1: Modify cordis.patch.yml
- id: universal-search
name: '@deepseek-ai/dsh-Universal-Search'
config:
provider: openai-compatible # or 'deepseek', 'custom'
apiKeyEnv: YOUR_API_KEY_ENV # Your API key environment variable name
baseURL: https://your-api.com/v1 # Optional, override default endpoint
model: your-model # Optional, override default model
Method 2: Set Environment Variable
# For OpenAI-compatible API
export YOUR_API_KEY_ENV=your_api_key_here
# For Xiaomi MiMo
export XIAOMI_API_KEY=your_api_key_here
# For Ollama (local, no API key needed)
# No environment variable needed
Method 3: Configure in DSH Web GUI
- Navigate to Settings > Plugins
- Find the "Universal Search" card
- Configure API key, endpoint, model, etc.
- Save
Supported Providers
| Provider | Type | Endpoint | Requires API Key |
|---|---|---|---|
| DeepSeek | deepseek-official | https://api.deepseek.com | Yes (reuses DeepSeek config) |
| OpenAI | openai-compatible | https://api.openai.com/v1 | Yes |
| Xiaomi MiMo | openai-compatible | https://api.xiaomimimo.com/v1 | Yes |
| Ollama | openai-compatible | http://localhost:11434/v1 | No |
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
provider | string | deepseek-official | Provider type |
apiKey | string | - | Literal API key |
apiKeyEnv | string | - | Environment variable name for API key |
baseURL | string | Based on provider | API endpoint base URL |
model | string | Based on provider | Model name for search requests |
maxTokens | number | 4096 | Maximum tokens for response |
Files to Modify in DeepSeek Harness
If installing as a standalone plugin, you need to modify:
-
packages/bundle/base/package.json- Add dependency:"@deepseek-ai/dsh-Universal-Search": "workspace:^" -
packages/bundle/base/cordis.patch.yml- Add plugin entry:- id: universal-search name: '@deepseek-ai/dsh-Universal-Search' config: provider: deepseek-official -
packages/web/universal-search/package.json- Update repository directory if needed