createBedrockKBTool()
La fonction createBedrockKBTool() crée un Tool qui récupère des documents pertinents dans une base de connaissances Amazon Bedrock. Elle prend en charge à la fois la configuration de recherche gérée et la récupération agentique (décomposition des requêtes et reclassement géré), avec un repli automatique vers la récupération standard.
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { createBedrockKBTool } from '@mastra/rag'
const kbTool = createBedrockKBTool({
knowledgeBaseId: 'YOUR_KB_ID',
region: 'us-west-2',
numberOfResults: 5,
useAgenticRetrieval: true,
})
Avec un AgentLien direct vers Avec un Agent
import { Agent } from '@mastra/core/agent'
import { createBedrockKBTool } from '@mastra/rag'
const kbTool = createBedrockKBTool({
knowledgeBaseId: 'YOUR_KB_ID',
})
const agent = new Agent({
name: 'KnowledgeAssistant',
instructions: 'Use the knowledge base tool to answer questions.',
model: myModel,
tools: { kb: kbTool },
})
ParamètresLien direct vers Paramètres
knowledgeBaseId:
region?:
numberOfResults?:
useAgenticRetrieval?:
userId?:
Schéma d'entréeLien direct vers Schéma d'entrée
Le Tool accepte l'entrée suivante lorsqu'il est appelé par un Agent :
queryText:
Schéma de sortieLien direct vers Schéma de sortie
Le Tool renvoie un objet contenant :
results:
BedrockKBResultLien direct vers BedrockKBResult
| Champ | Type | Description |
|---|---|---|
content | string | Contenu textuel du passage récupéré. |
source | string | undefined | URI de la source lorsque Bedrock en fournit un. La récupération agentique inclut ce champ uniquement lorsque les métadonnées du résultat contiennent _source_uri. |
score | number | undefined | Score de pertinence renvoyé par la récupération standard. L'API agentique ne renvoie pas de score pour les éléments du résultat. |
metadata | Record<string, unknown> | Métadonnées supplémentaires provenant du résultat de la récupération. |
Modes de récupérationLien direct vers Modes de récupération
Récupération agentique (par défaut)Lien direct vers Récupération agentique (par défaut)
Lorsque useAgenticRetrieval vaut true (par défaut), le Tool utilise AgenticRetrieveStreamCommand, qui :
- Décompose les requêtes complexes en sous-requêtes
- Effectue la récupération en plusieurs passes
- Applique un reclassement géré afin d'améliorer les résultats
Si la récupération agentique échoue (par exemple en raison d'une ancienne version du SDK ou des autorisations), le Tool se replie automatiquement sur la récupération gérée standard.
Récupération gérée standardLien direct vers Récupération gérée standard
Lorsque useAgenticRetrieval vaut false, le Tool utilise RetrieveCommand avec managedSearchConfiguration pour effectuer une récupération directe en une seule passe.
Contrôle d'accès par utilisateurLien direct vers Contrôle d'accès par utilisateur
Définissez userId dans le contexte de requête Mastra afin de le transmettre comme userContext.userId de Bedrock. Cette fonctionnalité permet d'utiliser les bases de connaissances qui appliquent un contrôle d'accès au niveau des documents. La valeur du contexte de requête remplace le userId par défaut configuré sur le Tool.
import { RequestContext } from '@mastra/core/request-context'
const requestContext = new RequestContext()
requestContext.set('userId', 'user-123')
await agent.generate('Find my private documents', { requestContext })
Autorisations IAM requisesLien direct vers Autorisations IAM requises
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["bedrock:Retrieve", "bedrock:AgenticRetrieveStream"],
"Resource": "arn:aws:bedrock:*:*:knowledge-base/*"
}
]
}
Prérequis du SDKLien direct vers Prérequis du SDK
@aws-sdk/client-bedrock-agent-runtime>= 3.1000 (AgenticRetrieveStreamCommand nécessite la version ~3.1000 ou ultérieure)