# ClearToolUsesEdit

> **Class** in `langchain`

📖 [View in docs](https://reference.langchain.com/javascript/langchain/index/ClearToolUsesEdit)

Strategy for clearing tool outputs when token limits are exceeded.

This strategy mirrors Anthropic's `clear_tool_uses_20250919` behavior by
replacing older tool results with a placeholder text when the conversation
grows too large. It preserves the most recent tool results and can exclude
specific tools from being cleared.

## Signature

```javascript
class ClearToolUsesEdit
```

## Implements

- `ContextEdit`

## Constructors

- [`constructor()`](https://reference.langchain.com/javascript/langchain/index/ClearToolUsesEdit/constructor)

## Properties

- `clearAtLeast`
- `clearToolInputs`
- `excludeTools`
- `keep`
- `model`
- `placeholder`
- `trigger`

## Methods

- [`apply()`](https://reference.langchain.com/javascript/langchain/index/ClearToolUsesEdit/apply)

## Examples

```ts
import { ClearToolUsesEdit } from "langchain";

const edit = new ClearToolUsesEdit({
  trigger: { tokens: 100000 },  // Start clearing at 100K tokens
  keep: { messages: 3 },        // Keep 3 most recent tool results
  excludeTools: ["important"],   // Never clear "important" tool
  clearToolInputs: false,        // Keep tool call arguments
  placeholder: "[cleared]",      // Replacement text
});

// Multiple trigger conditions
const edit2 = new ClearToolUsesEdit({
  trigger: [
    { tokens: 100000, messages: 50 },
    { tokens: 50000, messages: 100 }
  ],
  keep: { messages: 3 },
});

// Fractional trigger with model profile
const edit3 = new ClearToolUsesEdit({
  trigger: { fraction: 0.8 },  // Trigger at 80% of model's max tokens
  keep: { fraction: 0.3 },     // Keep 30% of model's max tokens
});
```

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/0c9440396c725d43b4758eb1b931c955e64ad8ec/libs/langchain/src/agents/middleware/contextEditing.ts#L214)