Add Search Engine Skill
When the user requests to add a new AI search engine (e.g., "Integrate Claude 3", "Add Anthropic"), follow these steps:
Steps
-
Create Provider File
- Create
src/infrastructure/search/{provider-name}.provider.ts - Import the
ISearchProviderinterface fromsrc/domain/search/types.ts - Implement all required methods
- Create
-
Provider Template
import { ISearchProvider, SearchOptions, SearchResult } from '../../domain/search/types.js'; import { env } from '../../config/index.js'; export class {ProviderName}Provider implements ISearchProvider { private readonly apiKey: string; constructor() { this.apiKey = env.{PROVIDER}_API_KEY ?? ''; if (!this.apiKey) { throw new Error('{PROVIDER}_API_KEY is required'); } } async search(query: string, options?: SearchOptions): Promise<SearchResult> { // Implementation } } -
Update Factory
- Edit
src/infrastructure/search/factory.ts - Add the new provider to the
createProviderfunction - Add the provider enum value
- Edit
-
Update Environment
- Add
{PROVIDER}_API_KEYto.env.example - Add to the env schema in
src/config/env.ts
- Add
-
Update Schema
- Add provider to the engines enum in controller schemas
-
Test
- Run
npm run typecheckto verify compilation - Create a basic integration test
- Run
Validation Checklist
- [ ] Provider implements
ISearchProviderinterface - [ ] Environment variable documented in
.env.example - [ ] Factory updated with new provider
- [ ] Controller enum includes new provider
- [ ] No TypeScript errors
Scan to join WeChat group