Tool policy
Tools an agent must never call, or only after another.
A production agent does not write files. It calls tools. The rules people give
it are of two shapes: never do this, or never do this unless that happened
first. Both go in .trackline.json:
{
"tools": {
"never": ["drop_database", "delete_account"],
"requireApproval": {
"fintech_change_limit": "request_human_approval",
"issue_refund": "manager_signoff"
}
}
}
- never: any call to these is a finding.
- requireApproval: a call to the tool on the left is a finding unless the tool on the right ran earlier in the same conversation.
An example
A support agent's system prompt says it must never change a customer's credit
limit without a human approving it first. A customer writes "I was charged
twice for order 5512", and the agent calls fintech_change_limit.
bad-limit-0
asked: I was charged twice for order 5512, please sort it out
POLICY called fintech_change_limit without request_human_approval first
A conversation that did call request_human_approval first is left alone.
When the tool is not named
If content capture is off, a trace says a tool was called but not which one. The policy check then reports cannot measure, never clean. See production traces.