Skip to content

Derive AI tools from a bounded task

A tool matrix for a support draft shows which functions are needed and how the server limits customer context, write access and results.

Matthias Becker2 min read
Blue identity badge with a padlock, check marks beside two symbols and a blocked key symbol.

Start by describing the required work result. This determines the functions an AI assistant needs. Having access to a ticket system is not sufficient reason to expose its entire functionality to the model.

Translate a task into functions

In this fictional example, the task is to create an internal reply draft for ticket T-62. The ticket belongs to customer account K-18 and references a project. The assistant may read the incoming request, query the associated project status and save a draft. Sending is outside this task.

The tool names are our own example labels. This matrix describes the planned scope:

Function

Effect

Available for this task?

readTicket

Read the permitted ticket

Yes, within the verified customer context

readProjectStatus

Read the associated project’s status

Yes, for the project linked to the ticket

saveReplyDraft

Save an internal draft against the ticket

Yes, without messaging the customer

sendReply

Send a message to the customer

No

OWASP recommends limiting tool functions and their permissions to what is necessary. A dedicated, narrowly defined call is easier to constrain than a general tool that executes arbitrary commands or uses arbitrary destination addresses.

Check context on the server

The server determines the permitted customer context from the signed-in person and the verified ticket. A customer identifier freely supplied by the model must not expand that context. The project must also demonstrably belong to the permitted case.

Every tool call checks permissions and allowed fields again. The visible tool list helps guide behaviour; actual access control remains in the service performing the operation. A well-formed argument or an instruction inside ticket text grants no additional rights.

Pass results on as states

A successfully saved draft requires confirmation from the ticket system. Generated text alone does not prove storage. If the write fails or its outcome remains unknown, the interface shows that state. It must not display it as a message sent to the customer.

If sending is added later, it is a separate extension with defined recipients, permissions and approvals where needed. An additional model request does not enable it incidentally.

Test the boundaries before use

Check the permitted workflow through to the saved draft, as well as a different customer context, a sending request inside ticket text and a failed save. The expected outcomes are an internal draft, denied access, no sending and a visible error state, respectively.

For each case, record permitted functions, the expected system state and the actual result. This makes it possible to see whether the technical boundary respects the task even when the model proposes an inappropriate call.

Sources

Written by

  • Matthias BeckerEditor for AI and AutomationMatthias Becker looks after the articles on artificial intelligence and automation at ASES. He examines how companies can use AI in their workflows and where the limits of each application lie.

Follow ASES

Read more

All articles

AI & Automation with ASES

AI assistants and automated workflows