# ToolEffect

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.tooleffect/
> Summary: ToolEffect: Classifies the blast radius of a tool call.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

Classifies the blast radius of a tool call.

```csharp
[JsonConverter(typeof(JsonStringEnumConverter<ToolEffect>))]
public enum ToolEffect
```

## Fields

`Destructive = 2` 

Cannot be undone.

`External = 3` 

Data leaves the process (an external call, a notification, a payment).

`Read = 0` 

No side effect.

`Write = 1` 

Changes persistent data.

## Remarks

This is information, not a gate — [ToolDescriptor.RequiresApproval](/api/tracon.tooldescriptor/#Tracon_ToolDescriptor_RequiresApproval)
and [IToolAuthorizationHandler](/api/tracon.itoolauthorizationhandler/) are the gates. The value is read
by the UI (badge color), written to the audit trail, and can be used by a
consumer's [IToolAuthorizationHandler](/api/tracon.itoolauthorizationhandler/) as a scope key.

Written **as a name** in JSON, the same convention every
other UI-facing enum in this API follows ([RunEventType](/api/tracon.runeventtype/),
[RunErrorClass](/api/tracon.runerrorclass/)).
