🗑️ chore: Remove Dev Artifacts for Deferred Tools Capability (#11601)

* chore: remove TOOL_CLASSIFICATION_AGENT_IDS env var blocking deferred tools

The TOOL_CLASSIFICATION_AGENT_IDS environment variable was gating
Tool Search creation even when agents had deferred tools configured
via the UI (agent tool_options). This caused agents with all MCP
tools set to defer_loading to have no tools available, since the
Tool Search tool wasn't being created.

- Remove isAgentAllowedForClassification function and its usage
- Remove early return that blocked classification features
- Update JSDoc comments to reflect current behavior
- Remove related tests from classification.spec.ts

Agent-level deferred_tools configuration now works correctly
without requiring env var configuration.

* chore: streamline classification tests and remove unused functions

- Removed deprecated tests related to environment variable configurations for tool classification.
- Simplified the classification.spec.ts file by retaining only relevant tests for the current functionality.
- Updated imports and adjusted test cases to reflect the changes in the classification module.
- Enhanced clarity in the classification utility functions by removing unnecessary comments and code.

* refactor: update ToolService to use AgentConstants for tool identification

- Replaced direct references to Constants with AgentConstants in ToolService.js for better consistency and maintainability.
- Enhanced logging in loadToolsForExecution and initializeClient to include toolRegistry size, improving debugging capabilities.
- Updated import statements in run.ts to include Constants, ensuring proper tool name checks during execution.

* chore: reorganize imports and enhance classification tests

- Updated import statements in classification.spec.ts for better clarity and organization.
- Reintroduced the getServerNameFromTool function to improve tool classification logic.
- Removed unused imports and functions to streamline the test file, enhancing maintainability.

* feat: enhance tool registry creation with additional properties

- Added toolType property to tool definitions in buildToolRegistryFromAgentOptions for improved classification.
- Included serverName assignment in tool definitions to enhance tool identification and management.
This commit is contained in:
Danny Avila 2026-02-01 22:33:12 -05:00 committed by GitHub
parent 9a38af5875
commit 40c5804ed6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 62 additions and 444 deletions

View file

@ -1,4 +1,4 @@
import { Run, Providers } from '@librechat/agents';
import { Run, Providers, Constants } from '@librechat/agents';
import { providerEndpointMap, KnownEndpoints } from 'librechat-data-provider';
import type { BaseMessage } from '@langchain/core/messages';
import type {
@ -17,9 +17,6 @@ import type { Agent } from 'librechat-data-provider';
import type * as t from '~/types';
import { resolveHeaders, createSafeUser } from '~/utils/env';
/** Tool search tool name constant */
const TOOL_SEARCH_NAME = 'tool_search';
/** Expected shape of JSON tool search results */
interface ToolSearchJsonResult {
found?: number;
@ -91,7 +88,7 @@ export function extractDiscoveredToolsFromHistory(messages: BaseMessage[]): Set<
}
const name = (message as { name?: string }).name;
if (name !== TOOL_SEARCH_NAME) {
if (name !== Constants.TOOL_SEARCH) {
continue;
}