Skip to content

Built-in Tools Reference

This page documents all built-in tool categories available to chat in the ASK Assistant Service (ask-assistant-service), including which model each tool uses, how model references are wired, and how each tool is enabled or disabled.


How Tools Reference Models

All tools follow a single wiring chain:

Tool code
  → get_tools_settings().<tool>_llm property
    → settings.llm_model_name (env var override)
      → Foundry API (AI71_FOUNDRY_ENDPOINT)
        → models.yml routing → actual provider (Anthropic / OpenAI / etc.)

Key files:

File Purpose
src/tooling/config/settings.py Central ToolsSettings class — all model names as env-var-backed fields with named properties per tool
src/tooling/core/mcp_servers/servers/*.py One file per tool server — declares always_available, requires_auth, and ServerRequirement (env var / app config / server dependency gates)
config/default.toml Dynaconf defaults for tools that use nested config (data_analysis, meta_agent, image_analysis)
src/model_provider/models/models.yml Foundry model registry — maps model string IDs to upstream providers

Model name fields in ToolsSettings (all overridable via env var):

Field Env Var Default
llm_model_name LLM_MODEL_NAME azure/gpt-5-chat
small_llm_model_name SMALL_LLM_MODEL_NAME azure/gpt-5-chat
code_generator_model_name CODE_GENERATOR_MODEL_NAME azure/gpt-5-chat
docx_prepare_context_model_name DOCX_PREPARE_CONTEXT_MODEL_NAME qwen/qwen3-5-122b-a10b
data_visualization_llm DATA_VISUALIZATION_LLM anthropic/claude-3-7-sonnet
foundry_tool_embedding_model_name FOUNDRY_TOOL_EMBEDDING_MODEL_NAME BAAI/bge-large-en-v1.5

Named properties on ToolsSettings map each tool use-case to the right field:

@property
def web_search_llm(self)             self.llm_model_name
def summarization_llm(self)          self.small_llm_model_name
def translation_llm(self)            self.llm_model_name
def code_generator_llm(self)         self.code_generator_model_name
def docx_prepare_context_llm(self)   self.docx_prepare_context_model_name
def extraction_llm(self)             self.llm_model_name
def email_query_extraction_llm(self) self.llm_model_name
def people_extraction_llm(self)      self.llm_model_name

To swap the model for any tool, set the corresponding env var — no code changes needed.


Enable / Disable Legend

Status Meaning
✅ Always on always_available=true on the MCP server — active for all agents with no configuration
🟡 Conditional Requires an env var, app config block, or per-agent activation
🔐 OAuth required requires_auth=true — user must complete an OAuth flow; plus provider env vars must be set

Complete Tool Reference

Category Sheet Feature Name Individual Tools Settings Property Default Model Central Settings Object Enable / Disable Deployed in MOD SC
Email (Gmail)ThreadSearchTool, FetchEmailsTool, FetchRelevantEmailsContentTool, SelectRelevantEmailsTool, ComposeAndExtractEmailTool, CreateUpdateDraftTool, SendGmailEmailTool, FetchAttachmentContentTool, EmailConsistencyCheckTool, BreakdownThreadFetchingQueryToolemail_query_extraction_llm, thread_fetching_breakdown_llm, relevant_content_extraction_llm, extraction_llmazure/gpt-5-chatllm_model_name🔐 OAuth requiredrequires_auth=true; Google OAuth flow; requires GOOGLE_GMAIL_CLIENT_ID + GOOGLE_GMAIL_CLIENT_SECRET
Outlook EmailSearchOutlookEmailsTool, FetchOutlookEmailsTool, SendOutlookEmailTool, CreateOutlookDraftToolemail_query_extraction_llm, thread_fetching_breakdown_llmazure/gpt-5-chatllm_model_name🔐 OAuth requiredrequires_auth=true; requires MICROSOFT_CLIENT_ID + MICROSOFT_CLIENT_SECRET + MICROSOFT_TENANT_ID
Outlook CalendarFetchOutlookEventsTool, CreateOutlookEventTool, UpdateOutlookCalendarEventTool, CancelOutlookCalendarEventToolextraction_llm, people_query_breakdown_llmazure/gpt-5-chatllm_model_name🔐 OAuth requiredrequires_auth=true; same Microsoft OAuth credentials as Outlook Email
Calendar (Google)CreateCalendarEventTool, UpdateCalendarEventTool, CancelCalendarEventTool, ListCalendarSeriesTool, GetAvailabilityTool, CalendarConsistencyCheckTool, BreakdownCalendarQueryTool, ListCalendarsTool, ComposeAndExtractCalendarEventToolextraction_llm, thread_fetching_breakdown_llm, people_query_breakdown_llmazure/gpt-5-chatllm_model_name🔐 OAuth requiredrequires_auth=true; requires GOOGLE_CALENDAR_CLIENT_ID + GOOGLE_CALENDAR_CLIENT_SECRET
Google DocsCreateGoogleDocTool, ReadGoogleDocTool, UpdateGoogleDocTool, DeleteGoogleDocTool, CopyGoogleDocTool, ListGoogleDocsTool— (Google API calls)none🔐 OAuth requiredrequires_auth=true; requires GOOGLE_DOCS_CLIENT_ID + GOOGLE_DOCS_CLIENT_SECRET
PeopleSearchPeopleTool, EnrichPeopleTool, BreakdownPeopleQueryTool, Google Contacts enricher, Directory searcherpeople_extraction_llm, people_search_extraction_llm, people_query_breakdown_llmazure/gpt-5-chatllm_model_name🔐 OAuth requiredrequires_auth=true; activated together with email/calendar/docs servers
Web SearchOrchestrator ModelWebSearchTool, WebCrawlTool, ArxivSearchTool, ArxivUrlToolweb_search_llmazure/gpt-5-chatllm_model_name🟡 Conditional — requires env var WEB_SEARCH_TAVILY_API_KEY (strict=false, degrades gracefully without it)
Code ExecutionCodeInterpreterExecutionTool, XlsxSkillTool, Daytona runtime/artifacts/helpers— (no LLM call)none🟡 Conditionalalways_available=false; enabled per-agent; no hard env requirement
Daytona MinimalDaytonaMinimalCodeExecutionTool— (no LLM call)none🟡 Conditional — bundled with code_execution server; same activation rule
Code GeneratorOrchestrator ModelCodeGeneratorToolcode_generator_llmazure/gpt-5-chatcode_generator_model_name🟡 Conditionalalways_available=false; also required by data_analysis as a SERVER_DEPENDENCY
Data AnalysisModel used by various toolsDataAnalysisTool (column_mapper, data_profiler, query_validator sub-utils)app_config.tooling.data_analysis.* (toml)azure/gpt-5-chat (all 3 sub-models)app_config.tooling.data_analysis.{profiler,code_generator,column_mapper}_model🟡 Conditionalalways_available=false; SERVER_DEPENDENCY on both data_visualization and code_generation servers
Data VisualizationModel used by various tools — Data visualization toolDataVisualizationTooldata_visualization_llmanthropic/claude-3-7-sonnetdata_visualization_llm🟡 Conditionalalways_available=false; also a SERVER_DEPENDENCY for data_analysis
Image AnalysisKMS models — OCR ModelImageAnalysisToolapp_config.image_analysis.model (toml)Qwen/Qwen3-VL-8B-Instruct (VLM)app_config.image_analysis (VLM config block)🟡 Conditionaldisabled by default (image_analysis=@null in default.toml); must be set in env-specific toml; RequirementType.APP_CONFIG
Database NavigatorOrchestrator ModelDatabaseNavigatorToolllm_model_name / small_llm_model_name (fallback chain)azure/gpt-5-chatllm_model_namesmall_llm_model_name🟡 Conditionalalways_available=false; no hard env requirement; enabled per-agent
PP DB ConnectorListDatabaseConnectionsTool, ExecuteDatabaseQueryTool, GetDatabaseConnectionTool— (no LLM call)none🟡 Conditionalrequires_auth=false; toggled by org/agent configuration
Knowledge BaseKMS models — Embedding ModelRetrievalTool (KMS chunks, documents, retrieve)— (vector retrieval)BAAI/bge-large-en-v1.5 (embedding)foundry_tool_embedding_model_name🟡 Conditional — requires KMS_BASE_URL; enabled when a knowledge base is attached to an agent
Knowledge ExtractionOrchestrator ModelDocumentKnowledgeExtractorToolextraction_llmazure/gpt-5-chatllm_model_name🟡 Conditional — requires KMS_BASE_URL; bundled with knowledge_base activation
SummarizationOrchestrator ModelSummarizationToolsummarization_llmazure/gpt-5-chatsmall_llm_model_name🟡 Conditionalalways_available=false; enabled per-agent
TranslationOrchestrator ModelTextToTextTranslationTool, DocumentToDocumentTranslationTooltranslation_llmazure/gpt-5-chatllm_model_name🟡 Conditional — requires env var KMS_BASE_URL (RequirementType.ENV_VAR)
Google MapsGoogleGeocodingTool, GoogleReverseGeocodingTool, GoogleDirectionsTool, GooglePlacesCategorySearchTool, MapVisualizationTool— (Google Maps API)none🟡 Conditionalalways_available=false; requires env var GOOGLE_MAPS_API_KEY (RequirementType.ENV_VAR)
OSMOSMGeocodingTool, OSMReverseGeocodingTool, OSMDirectionsTool, OSMCategorySearchTool, MapVisualizationTool— (Nominatim API)none🟡 Conditional — requires env var OSM_USER_AGENT per Nominatim usage policy; no auth needed
Online MediaYouTubeTool, YouTubePlaylistTool— (YouTube API)none🟡 Conditional — requires env var OXYLABS_PROXY_ENDPOINT (RequirementType.ENV_VAR) for proxy-based YouTube access
DOCXOrchestrator ModelDocxPrepareContextTool, DocxApplyOperationTool, DocxMarkdownToWordTooldocx_prepare_context_llm, code_generator_llmqwen/qwen3-5-122b-a10b (prepare) / azure/gpt-5-chat (apply)docx_prepare_context_model_name / code_generator_model_name🟡 Conditionalrequires_auth=false; enabled per-agent; no hard env requirement
Tool SearchKMS models — Embedding ModelCapabilitySearchToolfoundry_tool_embedding_model_nameBAAI/bge-large-en-v1.5 (embedding)foundry_tool_embedding_model_name🟡 Conditionalalways_available=false; enabled per-agent
Meta AgentMeta Agent (N — disabled by default)PromptDraftingTool, ProposePatchToolapp_config.tooling.meta_agent.llm_model_name (toml)anthropic/claude-sonnet-4-6app_config.tooling.meta_agent.llm_model_name🟡 Conditionaldisabled by default (meta_agent=@null in default.toml); must be explicitly set in env toml to activate
Mufti AgentKnowledgeSearchTool, ContentFilterTool, ResponseValidationTool— (internal agent)none🟡 Conditionalalways_available=false; internal sub-agent; enabled per-agent config
ObfuscationPIISanitizerTool— (rule-based)none🟡 Conditional — no dedicated MCP server; activated via agent/pipeline config
Time & DateGetCurrentTimeTool— (system clock)none🟡 Conditional — enabled per-agent; no credentials required
Persistent Object MgmtObjectRetrievalTool— (storage retrieval)none✅ Always onalways_available=true (foundational_tools server); no credentials required; available to all agents by default

Detailed Reference

Server file: src/tooling/core/mcp_servers/servers/web_search.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
WebSearchTool, WebCrawlTool, ArxivSearchTool, ArxivUrlTool web_search_llm azure/gpt-5-chat llm_model_name 🟡 Conditional — requires env var WEB_SEARCH_TAVILY_API_KEY (strict=false, degrades gracefully without it)

Code Execution

Server file: src/tooling/core/mcp_servers/servers/code_execution.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
CodeInterpreterExecutionTool, XlsxSkillTool, Daytona runtime/artifacts/helpers — (no LLM call) none 🟡 Conditional — always_available=false; enabled per-agent; no hard env requirement

Daytona Minimal Code Execution

Server file: bundled inside code_execution server

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DaytonaMinimalCodeExecutionTool — (no LLM call) none 🟡 Conditional — bundled with code_execution server; same activation rule

Code Generator

Server file: src/tooling/core/mcp_servers/servers/code_generation_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
CodeGeneratorTool code_generator_llm azure/gpt-5-chat code_generator_model_name 🟡 Conditional — always_available=false; also required by data_analysis as a SERVER_DEPENDENCY

Data Analysis

Server file: src/tooling/core/mcp_servers/servers/data_analysis.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DataAnalysisTool (column_mapper, data_profiler, query_validator sub-utils) app_config.tooling.data_analysis.* (dynaconf toml) azure/gpt-5-chat (all 3 sub-models) app_config.tooling.data_analysis.{profiler,code_generator,column_mapper}_model 🟡 Conditional — always_available=false; SERVER_DEPENDENCY on both data_visualization and code_generation servers being active

Production note: Sub-model config (profiler_model, code_generator_model, column_mapper_model) is set in config/default.toml under [default.tooling.data_analysis] — overridable via TOOLING__DATA_ANALYSIS__<FIELD> env vars (dynaconf double-underscore form).


Data Visualization

Server file: src/tooling/core/mcp_servers/servers/data_visualization.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DataVisualizationTool data_visualization_llm anthropic/claude-3-7-sonnet data_visualization_llm 🟡 Conditional — always_available=false; also a SERVER_DEPENDENCY for data_analysis

Production note: This is the only visualization tool configured with a Claude model by default (not GPT). Override via DATA_VISUALIZATION_LLM env var.


Image Analysis

Server file: src/tooling/core/mcp_servers/servers/vision_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
ImageAnalysisTool app_config.image_analysis.model (toml) Qwen/Qwen3-VL-8B-Instruct (VLM) app_config.image_analysis (VLM config block) 🟡 Conditional — disabled by default (image_analysis=@null in config/default.toml); must be configured in environment-specific toml; uses RequirementType.APP_CONFIG gate

Production note: To enable, add to your env toml:

[environment.image_analysis]
model = "Qwen/Qwen3-VL-8B-Instruct"
timeout_seconds = 20
max_tokens = 1024
max_image_bytes = 5242880


Database Navigator

Server file: src/tooling/core/mcp_servers/servers/database_navigator.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DatabaseNavigatorTool llm_model_name / small_llm_model_name (fallback chain) azure/gpt-5-chat llm_model_namesmall_llm_model_name 🟡 Conditional — always_available=false; no hard env requirement; enabled per-agent

PP DB Connector

Server file: src/tooling/core/mcp_servers/servers/pp_db_connector.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
ListDatabaseConnectionsTool, ExecuteDatabaseQueryTool, GetDatabaseConnectionTool — (no LLM call) none 🟡 Conditional — requires_auth=false; toggled by org/agent configuration

Knowledge Base

Server file: activated when KMS is attached to an agent

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
RetrievalTool (KMS chunks, documents, retrieve) — (vector retrieval) BAAI/bge-large-en-v1.5 (embedding) foundry_tool_embedding_model_name 🟡 Conditional — requires KMS_BASE_URL; enabled when a knowledge base is attached to an agent

Knowledge Extraction

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DocumentKnowledgeExtractorTool extraction_llm azure/gpt-5-chat llm_model_name 🟡 Conditional — requires KMS_BASE_URL; bundled with knowledge_base activation

Summarization

Server file: src/tooling/core/mcp_servers/servers/summarization_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
SummarizationTool summarization_llm azure/gpt-5-chat small_llm_model_name 🟡 Conditional — always_available=false; enabled per-agent

Translation

Server file: src/tooling/core/mcp_servers/servers/translation.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
TextToTextTranslationTool, DocumentToDocumentTranslationTool translation_llm azure/gpt-5-chat llm_model_name 🟡 Conditional — requires env var KMS_BASE_URL (RequirementType.ENV_VAR)

Email (Gmail)

Server file: src/tooling/core/mcp_servers/servers/email_workflow_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
ThreadSearchTool, FetchEmailsTool, FetchRelevantEmailsContentTool, SelectRelevantEmailsTool, ComposeAndExtractEmailTool, CreateUpdateDraftTool, SendGmailEmailTool, FetchAttachmentContentTool, EmailConsistencyCheckTool, BreakdownThreadFetchingQueryTool email_query_extraction_llm, thread_fetching_breakdown_llm, relevant_content_extraction_llm, extraction_llm azure/gpt-5-chat llm_model_name 🔐 OAuth required — requires_auth=true; user must complete Google OAuth flow (gmail scope); requires GOOGLE_GMAIL_CLIENT_ID + GOOGLE_GMAIL_CLIENT_SECRET

Outlook Email

Server file: src/tooling/core/mcp_servers/servers/outlook_email_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
SearchOutlookEmailsTool, FetchOutlookEmailsTool, SendOutlookEmailTool, CreateOutlookDraftTool email_query_extraction_llm, thread_fetching_breakdown_llm azure/gpt-5-chat llm_model_name 🔐 OAuth required — requires_auth=true; requires MICROSOFT_CLIENT_ID + MICROSOFT_CLIENT_SECRET + MICROSOFT_TENANT_ID

Outlook Calendar

Server file: src/tooling/core/mcp_servers/servers/outlook_calendar_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
FetchOutlookEventsTool, CreateOutlookEventTool, UpdateOutlookCalendarEventTool, CancelOutlookCalendarEventTool extraction_llm, people_query_breakdown_llm azure/gpt-5-chat llm_model_name 🔐 OAuth required — requires_auth=true; same Microsoft OAuth credentials as Outlook Email

Calendar (Google)

Server file: src/tooling/core/mcp_servers/servers/calendar_workflow_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
CreateCalendarEventTool, UpdateCalendarEventTool, CancelCalendarEventTool, ListCalendarSeriesTool, GetAvailabilityTool, CalendarConsistencyCheckTool, BreakdownCalendarQueryTool, ListCalendarsTool, ComposeAndExtractCalendarEventTool extraction_llm, thread_fetching_breakdown_llm, people_query_breakdown_llm azure/gpt-5-chat llm_model_name 🔐 OAuth required — requires_auth=true; requires GOOGLE_CALENDAR_CLIENT_ID + GOOGLE_CALENDAR_CLIENT_SECRET

Google Docs

Server file: src/tooling/core/mcp_servers/servers/docs_workflow_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
CreateGoogleDocTool, ReadGoogleDocTool, UpdateGoogleDocTool, DeleteGoogleDocTool, CopyGoogleDocTool, ListGoogleDocsTool — (Google API calls) none 🔐 OAuth required — requires_auth=true; requires GOOGLE_DOCS_CLIENT_ID + GOOGLE_DOCS_CLIENT_SECRET

Google Maps

Server file: src/tooling/core/mcp_servers/servers/google_maps.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
GoogleGeocodingTool, GoogleReverseGeocodingTool, GoogleDirectionsTool, GooglePlacesCategorySearchTool, MapVisualizationTool — (Google Maps API) none 🟡 Conditional — always_available=false; requires env var GOOGLE_MAPS_API_KEY (RequirementType.ENV_VAR)

OSM (OpenStreetMap)

Server file: src/tooling/core/mcp_servers/servers/open_street_maps.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
OSMGeocodingTool, OSMReverseGeocodingTool, OSMDirectionsTool, OSMCategorySearchTool, MapVisualizationTool — (Nominatim API) none 🟡 Conditional — requires env var OSM_USER_AGENT per Nominatim usage policy; no auth needed

People

Server file: bundled with email/calendar/docs workflow servers

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
SearchPeopleTool, EnrichPeopleTool, BreakdownPeopleQueryTool, LLM extract tools, Google Contacts enricher, Directory searcher people_extraction_llm, people_search_extraction_llm, people_query_breakdown_llm azure/gpt-5-chat llm_model_name 🔐 OAuth required — requires_auth=true; activated together with email/calendar/docs servers

Online Media

Server file: src/tooling/core/mcp_servers/servers/youtube_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
YouTubeTool, YouTubePlaylistTool — (YouTube API) none 🟡 Conditional — requires env var OXYLABS_PROXY_ENDPOINT (RequirementType.ENV_VAR) for proxy-based YouTube access

DOCX

Server file: src/tooling/core/mcp_servers/servers/docx_workflow_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
DocxPrepareContextTool, DocxApplyOperationTool, DocxMarkdownToWordTool docx_prepare_context_llm, code_generator_llm qwen/qwen3-5-122b-a10b (prepare) / azure/gpt-5-chat (apply) docx_prepare_context_model_name / code_generator_model_name 🟡 Conditional — requires_auth=false; enabled per-agent; no hard env requirement

Production note: DOCX is the only tool that uses two different models for two phases — the 120B model for context preparation (heavier reasoning) and the standard model for applying operations.


Server file: src/tooling/core/mcp_servers/servers/tool_search.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
CapabilitySearchTool foundry_tool_embedding_model_name BAAI/bge-large-en-v1.5 (embedding) foundry_tool_embedding_model_name 🟡 Conditional — always_available=false; enabled per-agent

Meta Agent

Server file: src/tooling/core/mcp_servers/servers/meta_agent.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
PromptDraftingTool, ProposePatchTool app_config.tooling.meta_agent.llm_model_name (dynaconf toml) anthropic/claude-sonnet-4-6 app_config.tooling.meta_agent.llm_model_name 🟡 Conditional — disabled by default (meta_agent=@null in config/default.toml); must be explicitly set in environment toml to activate

Production note: To enable, add to your env toml:

[environment.tooling.meta_agent]
llm_model_name = "anthropic/claude-sonnet-4-6"


Mufti Agent

Server file: src/tooling/core/mcp_servers/servers/mufti_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
KnowledgeSearchTool, ContentFilterTool, ResponseValidationTool — (internal agent) none 🟡 Conditional — always_available=false; internal sub-agent; enabled per-agent config

Persistent Object Management

Server file: src/tooling/core/mcp_servers/servers/foundational_tools.py

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
ObjectRetrievalTool — (storage retrieval) none ✅ Always on — always_available=true (foundational_tools server); no credentials required; available to all agents by default

Production note: This is the only tool that is always on. It is the sole member of the foundational_tools server. All other tools require some form of activation.


Obfuscation

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
PIISanitizerTool — (rule-based) none 🟡 Conditional — no dedicated MCP server; activated via agent/pipeline config

Time & Date

Individual Tools Settings Property Default Model Central Settings Object Enable / Disable
GetCurrentTimeTool — (system clock) none 🟡 Conditional — enabled per-agent; no credentials required

Summary

Stat Count
Total tool categories 29
Categories with LLM calls 16
Categories with no LLM (pure API / rule-based) 13
Always on (no config needed) 1 (Persistent Object Mgmt)
OAuth required 5 (Gmail, Outlook Email, Outlook Calendar, Google Calendar, Google Docs)
Disabled by default in default.toml 2 (Image Analysis, Meta Agent)
Categories using Claude models 2 (Data Visualization, Meta Agent)
Categories using embedding models 2 (Knowledge Base, Tool Search)