Hoe we bepalen welke tools een AI-agent mag gebruiken
Ask Titan ontdekt capabilities via MCP, bepaalt application policy voor de huidige gebruiker en bindt alleen de toegestane toolset aan het orchestrator-model. Discovery en autorisatie blijven afzonderlijke verantwoordelijkheden.
Alles wat momenteel via MCP beschikbaar is
Alleen toegestane schema's worden gebonden
Tool discovery is geen autorisatie
Een MCP-client kan een catalogus van capabilities ontdekken. Die catalogus beantwoordt een technische vraag: welke tools stelt deze capabilityservice beschikbaar? Hij beantwoordt niet de applicatievraag die Ask Titan nog moet oplossen: welke van die tools mag deze gebruiker voor het model beschikbaar hebben?
We houden die beslissing in applicatiecode. Het model mag kiezen uit een toegestane set. Het model wordt niet gevraagd te bepalen welke capabilities het mag gebruiken.
Wat bestaat er?
Laad de huidige capability catalog en toolschema's die via MCP beschikbaar zijn.
Wat is toegestaan?
Los policy op voor de gevalideerde identity en bereken de effectieve toolset in applicatiecode.
Wat kan het model kiezen?
Bind alleen de effectieve toolschema's zodat niet-beschikbare capabilities voor die modelcall geen normale keuzes worden.
Los toegang op voordat het model een toolschema ziet
Ask Titan valideert de request-identity, ontdekt de actuele MCP-capabilitycatalogus en bepaalt de geconfigureerde capabilitygrants. De runtime-policy-resolver berekent de effectieve toolset voordat de orchestrator wordt opgebouwd en toolschema's aan het model worden gebonden.
Autorisatie is een doorsnede. Geen promptinstructie
Ask Titan bepaalt tooltoegang vanuit application policy en vergelijkt die grants met de tools die momenteel via MCP beschikbaar zijn. Een grant alleen is niet voldoende als de capability niet meer bestaat. Discovery alleen is niet voldoende als de huidige identity deze niet mag gebruiken.
Start vanuit gevalideerde identity
Los policy pas op nadat de applicatie een vertrouwde identity voor de request heeft.
Laad applicatiegrants
Gebruik stabiele capability-identifiers om de tools te bepalen die voor die identity zijn toegestaan, inclusief eventuele expliciete baselinepolicy.
Snijpunt met discovery
Alleen tools die zowel momenteel discoverable als toegestaan zijn worden onderdeel van de effectieve set.
available_tools = await discover_mcp_tools()
user_grants = await resolve_policy(identity)
allowed_names = unique([
*user_grants,
*baseline_capabilities,
])
effective_tools = [
tool
for tool in available_tools
if tool.name in allowed_names
]
| Ontdekt | Toegekend via beleid | Effectief resultaat |
|---|---|---|
| Ja | Ja | Bind de tool |
| Ja | Nee | Sluit het uit |
| Nee | Ja | Niet beschikbaar; niet binden |
Laat het model geen tools zien die het niet mag gebruiken
Tool calling werkt vanuit schema's die aan het model worden geleverd. In Ask Titan wordt de orchestratorgraph gemaakt met de effectieve toolset en dezelfde set aan het model gebonden. Een niet-toegestane capability is daardoor geen normale kandidaat voor modelselectie in die request.
Een bewust beperkt capability-oppervlak
Toegestaan capability-schema
Naam, beschrijving en inputschema zijn beschikbaar voor model-toolselectie.
Niet-geautoriseerde capability
Het schema wordt uitgesloten van de huidige modelcall in plaats van erop te vertrouwen dat het model het negeert.
orchestrator = build_graph(
tools=effective_tools,
checkpointer=conversation_memory,
)
# Inside the model node
model_with_tools = (
model.bind_tools(effective_tools)
if effective_tools
else model
)
response = await model_with_tools.ainvoke(context)
“Gebruik deze tool niet” is gedragsinstructie
Zodra een toolschema aan het model is gebonden, is die capability onderdeel van het beschikbare beslisoppervlak van het model. Een prompt kan beïnvloeden of het model deze kiest, maar verwijdert de capability niet. Ask Titan bepaalt autorisatie eerst in software en bindt alleen de effectieve toolset aan het model.
Bind elke tool en vertrouw vervolgens op promptinstructies
Het model ziet capabilityschema's buiten de effectieve toolset en kan daarvoor toolcalls uitsturen. Als de prompt de enige beperking is, hangt handhaving af van probabilistisch modelgedrag.
Los toegang eerst op en bind daarna alleen de effectieve toolset
Runtimebeleid doorsnijdt ontdekte capabilities met geconfigureerde grants vóór model binding. Het model kan alleen redeneren over toegestane capabilities, terwijl autorisatie op bronniveau tijdens uitvoering gehandhaafd blijft.
MCP-autorisatie en application tool policy lossen verschillende problemen op
Moderne MCP-specificaties bevatten autorisatiemechanismen om client-naar-server-toegang te beschermen. Dat is belangrijk, maar het is niet dezelfde vraag als Ask Titan's application policy: welke ontdekte capability-schema's mogen voor deze gevalideerde gebruiker aan de orchestrator worden aangeboden?
We houden deze verantwoordelijkheden gescheiden, zodat toegang op protocolniveau kan evolueren zonder per-user capability policy naar het model te verplaatsen of te vermengen met bronpermissies.
MCP-transport / servertoegang
Bepaalt of een client zich kan authenticeren bij en communiceren met de MCP-service.
Applicatie-capabilitypolicy
Bepaalt welke ontdekte toolschema's in aanmerking komen voor het huidige Ask Titan-request.
Model-toolselectie
Kiest uit de al toegestane schema's die aan het model worden aangeboden.
Bronautorisatie
Bepaalt wat het onderliggende systeem de geselecteerde capability laat lezen of uitvoeren.
Toolautorisatie geeft geen toegang tot de databron
Een gebruiker toestaan een specialistische capability aan te roepen en die capability toegang geven tot data zijn afzonderlijke controls. Ask Titan behandelt applicatiebrede toolautorisatie als één laag, niet als vervanging voor credentials, rollen, grants of bronnatieve controls in gekoppelde systemen.
Capability-autorisatie
Mag deze identiteit deze Ask Titan-capability überhaupt gebruiken?
Capabilityverbinding
Tegen welke geconfigureerde bron of welk semantisch model voert de specialist uit?
Bronhandhaving
Wat staan de credentials, rollen, grants en bronspecifieke securitycontrols daadwerkelijk toe?
Belangrijk: deze architectuur impliceert geen automatische end-to-end row-level of column-level security. Die controls hangen af van de aangesloten bron, het identitymodel en de deploymentconfiguratie.
Policy moet een veranderende toolcatalogus overleven
Enterprise-toolcatalogi veranderen. Capabilities worden toegevoegd, hernoemd, uitgeschakeld of verwijderd. Autorisatie kan daarom geen eenmalige lijst zijn die in een prompt wordt gekopieerd. De effectieve set moet steeds opnieuw tegen de actuele catalogus worden berekend.
Ontdekt, niet granted
Een nieuw ontsloten capability wordt niet automatisch beschikbaar voor bestaande gebruikers.
Toegekend, niet ontdekt
Een verouderde beleidsregel kan geen functie beschikbaar maken die niet meer in de actuele catalogus staat.
Ontdekt en granted
Alleen de intersectie wordt onderdeel van het effectieve tooloppervlak van de orchestrator.
Autorisatie moet bij fouten toegang beperken
De nuttige eigenschap van het intersection-model is dat de meeste mismatches de effectieve toolset verkleinen. Een verouderde grant, ontbrekende capability of malformed user-specific policy mag niet stilletjes breder modelaccess opleveren.
| Case | Verwacht runtimegedrag |
|---|---|
| Request identity kan niet worden gevalideerd | Bepaal voor het request geen normale user-toolset. |
| Gebruikersspecifiek beleid ontbreekt of is ongeldig | Breid toegang niet uit voorbij expliciet gedefinieerde baselinepolicy. |
| Tool is ontdekt maar niet granted | Sluit de tool uit vóór graphconstruction en modelbinding. |
| Policy geeft een tool die niet wordt ontdekt | De tool is niet beschikbaar en kan niet in de effectieve set komen. |
| Onderliggende bron weigert uitvoering | Respecteer de bronboundary; applicatie-tooltoegang overschrijft bronbeveiliging niet. |
Discovery ≠ autorisatie
Dat een tool bestaat, betekent niet dat deze beschikbaar is voor de huidige gebruiker.
Prompting ≠ autorisatie
Modelinstructies zijn niet de plek om de effectieve capabilityset af te dwingen.
Tooltoegang ≠ datatoegang
Applicatiegrants vervangen broncredentials, rollen of native security niet.
Policy grant ≠ toolbestaan
Verouderde grants kunnen een capability die niet meer in de huidige catalogus staat niet opnieuw activeren.
Het model moet kiezen binnen permissies. Het moet ze niet definiëren
Ask Titan houdt capability-policy in deterministische applicatiecode en geeft het model alleen de effectieve toolset. Zo blijft modelreasoning binnen een capabilitygrens die de applicatie onafhankelijk kan inspecteren, wijzigen en testen.
Deel 4 · Hoe Ask Titan Power BI semantic models bevraagt met DAX
Vervolgens gaan we achter één specialistische capability-grens: semantic-model-metadata, measures en relaties, DAX-generatie, executie en foutfeedback wanneer governed businesslogica in Power BI leeft.
Lees deel 4Vragen over enterprise-AI-agent-toolautorisatie
Praktische antwoorden over MCP tool discovery, application-level capability policy, model-toolbinding en bronautorisatie.
Wat betekent toolautorisatie in Ask Titan?
Toolautorisatie bepaalt welke ontdekte specialistische capabilities voor de gevalideerde identity zijn toegestaan en daardoor voor de request aan het orchestrator-model kunnen worden gebonden.
Waarom is MCP tool discovery niet hetzelfde als gebruikersautorisatie?
MCP discovery vertelt de client welke tools de capabilityservice momenteel aanbiedt. Ask Titan past nog steeds application policy toe om te bepalen welke van die ontdekte tools beschikbaar worden voor de huidige gebruiker en model-call.
Heeft MCP eigen autorisatie?
Ja. De huidige MCP-specificaties bevatten autorisatiemechanismen om client-to-server-toegang te beschermen. De application tool policy van Ask Titan is een aparte laag die bepaalt welke ontdekte capability-schema's voor een specifieke gevalideerde gebruiker aan de orchestrator worden aangeboden.
Waarom tools filteren vóór model binding?
Toolschema's die tijdens model binding worden aangeleverd definiëren de capabilities die het model normaal kan selecteren. Eerst filteren betekent dat niet-geautoriseerde capabilities worden uitgesloten van het effectieve tooloppervlak van het model in plaats van op promptinstructies te vertrouwen om ze te onderdrukken.
Kan een system prompt worden gebruikt om tooltoegang te beperken?
Een prompt kan modelgedrag sturen, maar hoort niet de primaire autorisatiegrens te zijn. Ask Titan bepaalt capability-toegang in applicatiecode en bindt alleen de effectief toegestane toolset aan het model.
Wat gebeurt er als policy toegang geeft tot een tool die niet meer beschikbaar is?
De tool komt niet in de effectieve set omdat Ask Titan policy grants doorsnijdt met de momenteel ontdekte MCP-catalogus. Een verouderde grant kan een ontbrekende capability niet callable maken.
Vervangt toolautorisatie op applicatieniveau datapermissions van de bron?
Nee. Capability-autorisatie en bronautorisatie zijn afzonderlijk. Credentials, rollen, grants en source-native controls bepalen nog steeds wat het gekoppelde systeem werkelijk toestaat.
Kan het model een tool aanroepen die er niet aan is gebonden?
Het normale tool-callingoppervlak bevat alleen de schema's die voor die request zijn gebonden en de LangGraph-toolnode wordt uit die toegestane set gebouwd. Een uitgesloten capability valt daardoor buiten de geconfigureerde toolset voor de turn.
Hoe veranderen toolrechten wanneer de capability catalog verandert?
De effectieve toolset wordt opnieuw berekend tegen de huidige catalogus. Nieuwe tools erven bestaande grants niet automatisch, terwijl verwijderde tools niet opnieuw effectief worden, zelfs als een verouderde policy-entry blijft bestaan.
Geef AI-agents bruikbare tools zonder iedere tool voor iedere gebruiker beschikbaar te maken
Ask Titan scheidt capability-discovery, application policy, model-toolselectie en bronautorisatie. Hetzelfde patroon kan worden gebruikt in enterprise-AI-systemen die gecontroleerde toegang tot meerdere specialistische capabilities nodig hebben.
Eén request, vier beslissingen
Technische referenties
De voorbeelden in dit artikel zijn vereenvoudigde architectuurpatronen. Deze publieke referenties documenteren de richting van MCP-autorisatie en het LangChain/LangGraph tool-bindinggedrag dat in het ontwerp wordt gebruikt.