Skip to content

Training Finder Agent

Training search and discovery agent with personalized recommendations.

Configuration

  • File: src/chatbot/agentic/agents/training_finder_agents.py
  • Model profile: tenant-configured large
  • State: OverallState

Key Features

  • Training search and discovery
  • Natural language query support
  • MongoDB Atlas Search integration
  • Personalized recommendations based on user profile
  • Weighted reciprocal-rank fusion (RRF) of vector and full-text results
  • Skills-based matching
  • Level and provider filtering

Tools

  • training_finder_tool - Search for trainings with advanced filters and collection presentation

Middleware

  • Dynamic prompt generation with context
  • Chat history limiting
  • Already-suggested trainings tracking

Search Capabilities

  • Topics and subjects
  • Skills and competencies
  • Training levels (Foundational, Intermediate, Advanced, Expert)
  • Provider filtering (LinkedIn Learning, Cornerstone, etc.)
  • Duration and format
  • Natural language queries (e.g., "Find Python trainings for beginners")

Personalization Features

The agent can use the requested profile dimensions, conversation history and saved learning preferences to resolve the search intent. The retrieved catalog results keep their weighted RRF order. The presentation layer generates a collection title and subtitle. Individual explanations are requested separately through the on-demand rationale endpoint. The subtitle explains a concrete link between the request and documented course content. Optional simulations must add a distinct learning activity rather than repeat the course exercises, including for learning plans. See the collection explanation rules.

Core Processing

For a clear structured learning-plan request, the agent retrieves the relevant profile sections and calls training_finder_tool with is_learning_plan=True, even when the topic, level or available study time is missing. It does not ask scoping questions before that call: the tool owns clarification and uses the persisted generic human-in-the-loop flow in interactive HTTP chat. Ambiguous course-search targets and simulation scoping use request_clarification_tool before search or generation. Simulation scoping can offer a generic scenario through per-question skip; skipping an unresolved course topic ends the lookup without guessing what to search for. Questions are supplied as an ordered batch.

Simulation scoping asks only for indispensable missing context. One question about the situation or skill can suffice; there is no fixed three-question checklist. When both the situation and intended outcome need clarification, ask them in two separate entries in the same batch so each can be answered or skipped independently. Ask about the counterpart's role only when it materially affects the scenario and a generic professional counterpart would not suffice. Reuse any context already provided and proceed directly when it is sufficient.

Before invoking the search core, the tool checks learning-plan scope and whether the request is interpretable. Compatible OpenAI mini uses categorical decisions and generates clarification only when needed; other provider/model configurations retain the combined structured calls. See the training tool workflow for sufficiency rules and failure behavior. The specialist agent itself keeps its configured large profile.

The agent uses the training_finder_process core function which:

  1. Resolves the natural-language request and filters.
  2. Executes vector and full-text searches against MongoDB or PostgreSQL.
  3. Merges both ranked lists with weighted RRF.
  4. Keeps the first five results in their exact RRF order for an ordinary search.
  5. Generates collection metadata without reordering the results.

See Training Core for detailed processing logic.

Example Queries

- "Find trainings about Python programming"
- "Show me leadership trainings for managers"
- "I want to learn machine learning, what trainings do you recommend?"
- "Find intermediate trainings on React from LinkedIn Learning"
- "Show me short practical trainings about data visualization"

Response Format

Returns structured training recommendations with:

  • Training ID and title
  • Description and provider
  • Level and duration
  • Skills covered

Items no longer expose a rationale field. The surrounding collection retains its title, subtitle, optional plan phases and rationaleContext search queries.