Utility service for action embedding operations. Uses action data already loaded by AIEngine - no separate initialization needed. All methods are static - no instance state required.

Follows the same pattern as AgentEmbeddingService for consistency.

Example

// Generate embeddings during AIEngine initialization
const entries = await ActionEmbeddingService.GenerateActionEmbeddings(
actions,
(text) => aiEngine.EmbedTextLocal(text)
);

// Find similar actions
const matches = await ActionEmbeddingService.FindSimilarActions(
vectorService,
"Search the web for information",
(text) => aiEngine.EmbedTextLocal(text),
5,
0.7
);

Constructors

Methods

  • Find actions similar to a specific action.

    Parameters

    • vectorService: SimpleVectorService<ActionEmbeddingMetadata>

      Vector service containing action embeddings

    • actionId: string

      The ID of the action to find similar actions to

    • topK: number = 5

      Maximum number of results to return (default: 5)

    • minSimilarity: number = 0.5

      Minimum similarity score 0-1 (default: 0.5)

    Returns ActionMatchResult[]

    Array of matching actions (excludes the source action)

    Throws

    Error if action not found in embeddings

  • Find actions similar to a given task description.

    Parameters

    • vectorService: SimpleVectorService<ActionEmbeddingMetadata>

      Vector service containing action embeddings

    • taskDescription: string

      The task description to match against action capabilities

    • embedFunction: ((text) => Promise<{
          model: AIModelEntityExtended;
          result: EmbedTextResult;
      }>)

      Function to generate embeddings (from AIEngine)

        • (text): Promise<{
              model: AIModelEntityExtended;
              result: EmbedTextResult;
          }>
        • Parameters

          • text: string

          Returns Promise<{
              model: AIModelEntityExtended;
              result: EmbedTextResult;
          }>

    • topK: number = 5

      Maximum number of results to return (default: 5)

    • minSimilarity: number = 0.5

      Minimum similarity score 0-1 (default: 0.5)

    Returns Promise<ActionMatchResult[]>

    Array of matching actions sorted by similarity score (highest first)

    Throws

    Error if embedding generation fails

  • Generate embeddings for actions using provided embedding function. Called by AIEngine during AdditionalLoading.

    Parameters

    • actions: ActionEntity[]

      Array of actions (already loaded by AIEngine)

    • embedFunction: ((text) => Promise<{
          model: AIModelEntityExtended;
          result: EmbedTextResult;
      }>)

      Function to generate embeddings (from AIEngine)

        • (text): Promise<{
              model: AIModelEntityExtended;
              result: EmbedTextResult;
          }>
        • Parameters

          • text: string

          Returns Promise<{
              model: AIModelEntityExtended;
              result: EmbedTextResult;
          }>

    Returns Promise<VectorEntry<ActionEmbeddingMetadata>[]>

    Vector entries ready for loading into vector service

  • Get the similarity score between two specific actions.

    Parameters

    • vectorService: SimpleVectorService<ActionEmbeddingMetadata>

      Vector service containing action embeddings

    • actionId1: string

      First action ID

    • actionId2: string

      Second action ID

    Returns number

    Similarity score (0-1)

    Throws

    Error if either action is not found