Skip to content

feat(plugin): add DeepSeek Search and Exchange Rates builtin plugins - #2780

Open
Jay0130-a wants to merge 1 commit into
coze-dev:mainfrom
Jay0130-a:feat/builtin-plugins-deepseek-exchange
Open

Jay0130-a wants to merge 1 commit into
coze-dev:mainfrom
Jay0130-a:feat/builtin-plugins-deepseek-exchange

Conversation

@Jay0130-a

Copy link
Copy Markdown

feat(plugin): add DeepSeek Search and Exchange Rates builtin plugins

What this PR does

Adds two new builtin plugins to the pluginproduct registry, following the existing structure exactly (openapi yaml + plugin_meta.yaml entry + official_plugin_icon logo):

1. DeepSeek Search (plugin_id: 23, tools 230001 / 230002)

Tools for the DeepSeek Tools API released 2026-10-17:

  • deepseek_web_search (POST /v1/tools/search) — AI-native web search. Each result carries title, url, snippet, summary, site_name, date, rerank_score (0-3, ≥1.5 = quality) and authority (0-4, ≥3 = highly authoritative), so agents can filter on quality instead of trusting position order. Operators (site:, -site:, -"phrase", "exact phrase", lang:, after:, before:) are passed through as-is. Optional ori_question improves relevance; need_content optionally returns full page content.
  • deepseek_web_fetch (POST /v1/tools/fetch) — fetch a single page and return title + body as clean Markdown. Retrieval/extraction happen on DeepSeek's infrastructure.

Auth: service_http Bearer — the same API key as the DeepSeek model platform (key from platform.deepseek.com).

2. Exchange Rates (plugin_id: 24, tools 240001 - 240003)

ECB daily reference rates for 30+ currencies (USD, CNY, EUR, JPY, GBP, ...) via Frankfurter:

  • get_latest_rates (GET /latest) — latest rates with base / symbols filters
  • get_historical_rates (GET /{date}) — rates for a specific date or a date range
  • list_currencies (GET /currencies) — supported currency codes and names

Auth: none (free public API, no key required).

Why these two

  • Web search/fetch and currency conversion are the most-requested agent tools; neither is covered by the current builtin set (Bocha covers search but DeepSeek Search adds scored/reranked results and page fetch; no rates plugin exists).
  • The pair also exercises both auth modes (service_http and none), which is useful as reference implementations for future contributors.

Validation

  • Both OpenAPI 3.0 documents pass openapi-spec-validator (including the description requirement on responses that kin-openapi's doc.Validate enforces in load_plugin.go).
  • plugin_id 23/24 and product_id values are collision-free against the existing registry (next free IDs; tool_id follows the {plugin_id}{seq} convention).
  • Plugin YAML structure matches the loader contract in backend/domain/plugin/conf/load_plugin.go (manifest validate → openapi3 validate → duplicate-id check).

Screenshots / Demo

Logos (generated 128x128 PNG): plugin_deepseek_search.png (indigo magnifier), plugin_exchange_rates.png (blue rising-line chart). Live-call demo can be provided on request — DeepSeek Search has already been E2E-verified against the same API in the Dify plugin submission (langgenius/dify-plugins#3398).

Add two new builtin plugins to the pluginproduct registry:

1. DeepSeek Search (plugin_id 23, tools 230001-230002)
   - deepseek_web_search: AI-native web search with ranked results
     carrying rerank_score (0-3) and authority (0-4) ratings,
     operator support (site:, -site:, quotes, lang:, after:, before:)
   - deepseek_web_fetch: fetch a single page and get its title and
     body as clean Markdown
   - Auth: service_http Bearer (same key as the DeepSeek model platform)

2. Exchange Rates (plugin_id 24, tools 240001-240003)
   - get_latest_rates / get_historical_rates / list_currencies
   - ECB daily reference rates for 30+ currencies, no API key needed
   - Auth: none

Both OpenAPI 3.0 documents pass openapi-spec-validator; identifiers
follow the existing plugin_id/tool_id allocation (next free IDs).
Logos added under docker/volumes/minio/official_plugin_icon/.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant