> ## Documentation Index
> Fetch the complete documentation index at: https://www.algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trim Context

> Deterministically trim a conversation payload (no LLM calls).

**Required ACL:** `search`

Keep the last N messages and/or fit a heuristic token budget, optionally dropping tool parts
from what is kept (tool parts are stripped before the budget is applied). Returns the trimmed
messages plus before/after stats.

With no constraints set, the messages are returned unchanged and only the stats are computed -
a deliberate, cheap "how big is my context?" probe (no LLM call, no mutation).

## Usage

```cs C# theme={"system"}
// Initialize the client
var client = new AgentStudioClient(
  new AgentStudioConfig("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
);

// Call the API
var response = await client.TrimContextAsync(
  new ContextTrimRequest
  {
    Messages = new MessagesUnion(
      new List<MessageV4>
      {
        new MessageV4(new UserMessageV4 { Role = "user", Content = "Hello, how are you?" }),
      }
    ),
  }
);

// print the response
Console.WriteLine(response);
```

```dart Dart theme={"system"}
// Initialize the client
final client = AgentStudioClient(
    appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

// Call the API
final response = await client.trimContext(
  contextTrimRequest: ContextTrimRequest(
    messages: [
      UserMessageV4(
        role: "user",
        content: "Hello, how are you?",
      ),
    ],
  ),
);

// print the response
print(response);
```

```go Go theme={"system"}
// Initialize the client
client, err := agentStudio.NewClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
if err != nil {
  // The client can fail to initialize if you pass an invalid parameter.
  panic(err)
}

// Call the API
response, err := client.TrimContext(client.NewApiTrimContextRequest(

  agentStudio.NewEmptyContextTrimRequest().SetMessages(agentStudio.ArrayOfMessageV4AsMessagesUnion(
    []agentStudio.MessageV4{*agentStudio.UserMessageV4AsMessageV4(
      agentStudio.NewEmptyUserMessageV4().SetRole("user").SetContent("Hello, how are you?"))}))))
if err != nil {
  // handle the eventual error
  panic(err)
}


// print the response
print(response)
```

```java Java theme={"system"}
// Initialize the client
AgentStudioClient client = new AgentStudioClient("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");

// Call the API
ContextResponse response = client.trimContext(
  new ContextTrimRequest().setMessages(
    MessagesUnion.ofListOfMessageV4(Arrays.asList(new UserMessageV4().setRole("user").setContent("Hello, how are you?")))
  )
);

// print the response
System.out.println(response);
```

```js JavaScript theme={"system"}
// Initialize the client
const client = agentStudioClient('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
const response = await client.trimContext({ messages: [{ role: 'user', content: 'Hello, how are you?' }] });


// print the response
console.log(response);
```

```kotlin Kotlin theme={"system"}
// Initialize the client
val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
var response =
  client.trimContext(
    contextTrimRequest =
      ContextTrimRequest(
        messages =
          MessagesUnion.ofListOfMessageV4(
            listOf(UserMessageV4(role = "user", content = "Hello, how are you?"))
          )
      )
  )


// print the response
println(response)
```

```php PHP theme={"system"}
// Initialize the client
$client = AgentStudioClient::create('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

// Call the API
$response = $client->trimContext(
    ['messages' => [
        ['role' => 'user',
            'content' => 'Hello, how are you?',
        ],
    ],
    ],
);


// print the response
var_dump($response);
```

```python Python theme={"system"}
# Initialize the client
# In an asynchronous context, you can use AgentStudioClient instead, which exposes the exact same methods.
client = AgentStudioClientSync("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.trim_context(
    context_trim_request={
        "messages": [
            {
                "role": "user",
                "content": "Hello, how are you?",
            },
        ],
    },
)


# print the response
print(response)
```

```ruby Ruby theme={"system"}
# Initialize the client
client = Algolia::AgentStudioClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

# Call the API
response = client.trim_context(
  Algolia::AgentStudio::ContextTrimRequest.new(
    messages: [Algolia::AgentStudio::UserMessageV4.new(role: "user", content: "Hello, how are you?")]
  )
)


# print the response
puts(response)
```

```scala Scala theme={"system"}
// Initialize the client
val client = AgentStudioClient(appId = "ALGOLIA_APPLICATION_ID", apiKey = "ALGOLIA_API_KEY")

// Call the API
val response = Await.result(
  client.trimContext(
    contextTrimRequest = ContextTrimRequest(
      messages = MessagesUnion(
        Seq(
          UserMessageV4(
            role = "user",
            content = "Hello, how are you?"
          )
        )
      )
    )
  ),
  Duration(100, "sec")
)

// print the response
println(response)
```

```swift Swift theme={"system"}
// Initialize the client
let client = try AgentStudioClient(appID: "ALGOLIA_APPLICATION_ID", apiKey: "ALGOLIA_API_KEY")

// Call the API
let response = try await client
    .trimContext(contextTrimRequest: ContextTrimRequest(messages: MessagesUnion
            .arrayOfMessageV4([MessageV4.userMessageV4(UserMessageV4(
                role: "user",
                content: "Hello, how are you?"
            ))])))

// print the response
print(response)
```

> [card] [See the full API reference](https://www.algolia.com/doc/rest-api/agent-studio/trim-context.md)
>
> For more details about input parameters
> and response fields.
