ai
Version:
AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.
85 lines (61 loc) • 1.89 kB
text/mdx
title: isStepCount
description: API Reference for isStepCount.
# `isStepCount()`
Creates a stop condition that stops when the number of completed steps equals a specified count.
This function is used with `stopWhen` in `generateText` and `streamText` to control when a tool-calling loop should stop based on the number of steps executed.
```ts
import { generateText, isStepCount } from 'ai';
__PROVIDER_IMPORT__;
const result = await generateText({
model: __MODEL__,
tools: {
// your tools
},
// Stop after 5 steps
stopWhen: isStepCount(5),
});
```
## Import
<Snippet text={`import { isStepCount } from "ai"`} prompt={false} />
## API Signature
### Parameters
<PropertiesTable
content={[
{
name: 'stepCount',
type: 'number',
description:
'The number of completed steps that should trigger the stop condition.',
},
]}
/>
### Returns
A `StopCondition` function that returns `true` when the number of completed steps equals the specified number. The function can be used with the `stopWhen` parameter in `generateText` and `streamText`.
## Examples
### Basic Usage
Stop after 3 steps:
```ts
import { generateText, isStepCount } from 'ai';
const result = await generateText({
model: yourModel,
tools: yourTools,
stopWhen: isStepCount(3),
});
```
### Combining with Other Conditions
You can combine multiple stop conditions in an array:
```ts
import { generateText, isStepCount, hasToolCall } from 'ai';
const result = await generateText({
model: yourModel,
tools: yourTools,
// Stop after 10 steps OR when finalAnswer tool is called
stopWhen: [isStepCount(10), hasToolCall('finalAnswer')],
});
```
## See also
- [`hasToolCall()`](/docs/reference/ai-sdk-core/has-tool-call)
- [`generateText()`](/docs/reference/ai-sdk-core/generate-text)
- [`streamText()`](/docs/reference/ai-sdk-core/stream-text)