Skip to content

Commit 3b9b3c4

Browse files
committed
refactor: remove company prefix from model provider class names
Rename model providers to shorter, API-focused names: - BedrockConverseModel -> ConverseModel - OpenAIChatModel -> ChatModel - AnthropicMessagesModel -> MessagesModel - GoogleGenAIModel -> GenAIModel All related types (Config, Options, etc.) renamed accordingly. Updated all source, tests, examples, and documentation.
1 parent c48c2ad commit 3b9b3c4

36 files changed

Lines changed: 406 additions & 409 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ export interface MyConfig {
475475
- All exported functions, classes, and interfaces must have TSDoc
476476
- Include `@param` for all parameters
477477
- Include `@returns` for return values
478-
- Include `@example` only for exported classes (main SDK entry points like BedrockConverseModel, Agent)
478+
- Include `@example` only for exported classes (main SDK entry points like ConverseModel, Agent)
479479
- Do NOT include `@example` for type definitions, interfaces, or internal types
480480
- Interface properties MUST have single-line descriptions
481481
- Interface properties MAY include an optional `@see` link for additional details

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@ Switch between model providers easily:
9898
**Amazon Bedrock (Default)**
9999

100100
```typescript
101-
import { Agent, BedrockConverseModel } from '@strands-agents/sdk'
101+
import { Agent, ConverseModel } from '@strands-agents/sdk'
102102

103-
const model = new BedrockConverseModel({
103+
const model = new ConverseModel({
104104
region: 'us-east-1',
105105
modelId: 'anthropic.claude-3-5-sonnet-20240620-v1:0',
106106
maxTokens: 4096,
@@ -114,10 +114,10 @@ const agent = new Agent({ model })
114114

115115
```typescript
116116
import { Agent } from '@strands-agents/sdk'
117-
import { OpenAIChatModel } from '@strands-agents/sdk/models/openai'
117+
import { ChatModel } from '@strands-agents/sdk/models/openai'
118118

119119
// Automatically uses process.env.OPENAI_API_KEY and defaults to gpt-4o
120-
const model = new OpenAIChatModel()
120+
const model = new ChatModel()
121121

122122
const agent = new Agent({ model })
123123
```
@@ -243,9 +243,9 @@ Coordinate multiple agents using built-in orchestration patterns.
243243
**Graph** — You define a deterministic execution plan. Agents run as nodes in a directed graph, with edges controlling execution order. Parallel execution is supported, and downstream nodes run once all dependencies complete.
244244

245245
```typescript
246-
import { Agent, BedrockConverseModel, Graph } from '@strands-agents/sdk'
246+
import { Agent, ConverseModel, Graph } from '@strands-agents/sdk'
247247

248-
const model = new BedrockConverseModel({ maxTokens: 1024 })
248+
const model = new ConverseModel({ maxTokens: 1024 })
249249

250250
const researcher = new Agent({
251251
model,
@@ -270,9 +270,9 @@ const result = await graph.invoke('What is the largest ocean?')
270270
**Swarm** — The agents decide the routing. Each agent chooses whether to hand off to another agent or produce a final response, making the execution path dynamic and model-driven.
271271

272272
```typescript
273-
import { Agent, BedrockConverseModel, Swarm } from '@strands-agents/sdk'
273+
import { Agent, ConverseModel, Swarm } from '@strands-agents/sdk'
274274

275-
const model = new BedrockConverseModel({ maxTokens: 1024 })
275+
const model = new ConverseModel({ maxTokens: 1024 })
276276

277277
const researcher = new Agent({
278278
model,

docs/PR.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Leave these out of your PR description:
6262
### Type Definition Updates
6363

6464
- Added ApiKeySetter type import from 'openai/client'
65-
- Updated OpenAIChatModelOptions interface apiKey type
65+
- Updated ChatModelOptions interface apiKey type
6666
```
6767

6868
**Implementation notes reviewers don't need:**
@@ -101,18 +101,18 @@ preventing users from leveraging these capabilities.
101101
````markdown
102102
## Public API Changes
103103

104-
The `OpenAIChatModelOptions.apiKey` parameter now accepts either a string or an
104+
The `ChatModelOptions.apiKey` parameter now accepts either a string or an
105105
async function:
106106

107107
```typescript
108108
// Before: only string supported
109-
const model = new OpenAIChatModel({
109+
const model = new ChatModel({
110110
modelId: 'gpt-4o',
111111
apiKey: 'sk-...',
112112
})
113113

114114
// After: function also supported
115-
const model = new OpenAIChatModel({
115+
const model = new ChatModel({
116116
modelId: 'gpt-4o',
117117
apiKey: async () => await secretManager.getApiKey(),
118118
})

docs/TESTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,9 @@ it('yields expected stream events', async () => {
278278
**Example Implementation Test:**
279279

280280
```typescript
281-
describe('BedrockConverseModel', () => {
281+
describe('ConverseModel', () => {
282282
it('streams messages correctly', async () => {
283-
const provider = new BedrockConverseModel(config)
283+
const provider = new ConverseModel(config)
284284
const stream = provider.stream(messages)
285285

286286
for await (const event of stream) {

examples/agents-as-tools/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Agent, AgentResult, BedrockConverseModel, tool } from '@strands-agents/sdk'
1+
import { Agent, AgentResult, ConverseModel, tool } from '@strands-agents/sdk'
22
import { z } from 'zod'
33

44
/**
@@ -13,7 +13,7 @@ function extractText(result: AgentResult): string {
1313
return result.lastMessage.content.map((b) => ('text' in b ? b.text : '')).join('')
1414
}
1515

16-
const model = new BedrockConverseModel({ maxTokens: 1024 })
16+
const model = new ConverseModel({ maxTokens: 1024 })
1717

1818
// Specialized tool agents
1919

examples/first-agent/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Agent, BedrockConverseModel, tool } from '@strands-agents/sdk'
1+
import { Agent, ConverseModel, tool } from '@strands-agents/sdk'
22
import { z } from 'zod'
33

44
const weatherTool = tool({
@@ -54,7 +54,7 @@ async function runStreaming(title: string, agent: Agent, prompt: string) {
5454

5555
async function main() {
5656
// 1. Initialize the components
57-
const model = new BedrockConverseModel()
57+
const model = new ConverseModel()
5858

5959
// 2. Create agents
6060
const defaultAgent = new Agent()

examples/graph/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Agent, BedrockConverseModel, Graph } from '@strands-agents/sdk'
1+
import { Agent, ConverseModel, Graph } from '@strands-agents/sdk'
22

33
async function main() {
4-
const model = new BedrockConverseModel({ maxTokens: 1024 })
4+
const model = new ConverseModel({ maxTokens: 1024 })
55

66
// Define agents as graph nodes
77
const researcher = new Agent({

examples/swarm/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Agent, BedrockConverseModel, Swarm } from '@strands-agents/sdk'
1+
import { Agent, ConverseModel, Swarm } from '@strands-agents/sdk'
22

33
async function main() {
4-
const model = new BedrockConverseModel({ maxTokens: 1024 })
4+
const model = new ConverseModel({ maxTokens: 1024 })
55

66
// Define swarm agents with descriptions (used for routing decisions)
77
const researcher = new Agent({

src/__tests__/index.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ describe('index', () => {
77
expect(SDK.ContextWindowOverflowError).toBeDefined()
88
})
99

10-
it('exports BedrockConverseModel', () => {
11-
expect(SDK.BedrockConverseModel).toBeDefined()
10+
it('exports ConverseModel', () => {
11+
expect(SDK.ConverseModel).toBeDefined()
1212
})
1313

14-
it('can instantiate BedrockConverseModel', () => {
15-
const provider = new SDK.BedrockConverseModel({ region: 'us-west-2' })
16-
expect(provider).toBeInstanceOf(SDK.BedrockConverseModel)
14+
it('can instantiate ConverseModel', () => {
15+
const provider = new SDK.ConverseModel({ region: 'us-west-2' })
16+
expect(provider).toBeInstanceOf(SDK.ConverseModel)
1717
expect(provider.getConfig()).toBeDefined()
1818
})
1919

@@ -24,10 +24,10 @@ describe('index', () => {
2424
// Error types
2525
contextError: typeof SDK.ContextWindowOverflowError
2626
// Model provider
27-
provider: typeof SDK.BedrockConverseModel
27+
provider: typeof SDK.ConverseModel
2828
} = {
2929
contextError: SDK.ContextWindowOverflowError,
30-
provider: SDK.BedrockConverseModel,
30+
provider: SDK.ConverseModel,
3131
}
3232
expect(_typeCheck).toBeDefined()
3333
})

src/agent/__tests__/agent.test.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
} from '../../index.js'
2121
import { AgentPrinter } from '../printer.js'
2222
import { BeforeInvocationEvent, BeforeToolsEvent } from '../../hooks/events.js'
23-
import { BedrockConverseModel } from '../../models/bedrock.js'
23+
import { ConverseModel } from '../../models/bedrock.js'
2424
import { StructuredOutputError } from '../../errors.js'
2525
import { expectLoopMetrics } from '../../__fixtures__/metrics-helpers.js'
2626
import { expectAgentResult } from '../../__fixtures__/agent-helpers.js'
@@ -797,11 +797,11 @@ describe('Agent', () => {
797797
expect(agent.model).toBe(model)
798798
})
799799

800-
it('returns default BedrockConverseModel when no model provided', () => {
800+
it('returns default ConverseModel when no model provided', () => {
801801
const agent = new Agent()
802802

803803
expect(agent.model).toBeDefined()
804-
expect(agent.model.constructor.name).toBe('BedrockConverseModel')
804+
expect(agent.model.constructor.name).toBe('ConverseModel')
805805
})
806806
})
807807

@@ -1097,25 +1097,25 @@ describe('Agent', () => {
10971097

10981098
describe('model initialization', () => {
10991099
describe('when model is a string', () => {
1100-
it('creates BedrockConverseModel with specified modelId', () => {
1100+
it('creates ConverseModel with specified modelId', () => {
11011101
const agent = new Agent({ model: 'anthropic.claude-3-5-sonnet-20240620-v1:0' })
11021102

11031103
expect(agent.model).toBeDefined()
1104-
expect(agent.model.constructor.name).toBe('BedrockConverseModel')
1104+
expect(agent.model.constructor.name).toBe('ConverseModel')
11051105
expect(agent.model.getConfig().modelId).toBe('anthropic.claude-3-5-sonnet-20240620-v1:0')
11061106
})
11071107

1108-
it('creates BedrockConverseModel with custom model ID', () => {
1108+
it('creates ConverseModel with custom model ID', () => {
11091109
const customModelId = 'custom.model.id'
11101110
const agent = new Agent({ model: customModelId })
11111111

11121112
expect(agent.model.getConfig().modelId).toBe(customModelId)
11131113
})
11141114
})
11151115

1116-
describe('when model is explicit BedrockConverseModel', () => {
1117-
it('uses provided BedrockConverseModel instance', () => {
1118-
const explicitModel = new BedrockConverseModel({ modelId: 'explicit-model-id' })
1116+
describe('when model is explicit ConverseModel', () => {
1117+
it('uses provided ConverseModel instance', () => {
1118+
const explicitModel = new ConverseModel({ modelId: 'explicit-model-id' })
11191119
const agent = new Agent({ model: explicitModel })
11201120

11211121
expect(agent.model).toBe(explicitModel)
@@ -1124,23 +1124,23 @@ describe('Agent', () => {
11241124
})
11251125

11261126
describe('when no model is provided', () => {
1127-
it('creates default BedrockConverseModel', () => {
1127+
it('creates default ConverseModel', () => {
11281128
const agent = new Agent()
11291129

11301130
expect(agent.model).toBeDefined()
1131-
expect(agent.model.constructor.name).toBe('BedrockConverseModel')
1131+
expect(agent.model.constructor.name).toBe('ConverseModel')
11321132
})
11331133
})
11341134

11351135
describe('behavior parity', () => {
1136-
it('string model behaves identically to explicit BedrockConverseModel with same modelId', () => {
1136+
it('string model behaves identically to explicit ConverseModel with same modelId', () => {
11371137
const modelId = 'anthropic.claude-3-5-sonnet-20240620-v1:0'
11381138

11391139
// Create agent with string model ID
11401140
const agentWithString = new Agent({ model: modelId })
11411141

1142-
// Create agent with explicit BedrockConverseModel
1143-
const explicitModel = new BedrockConverseModel({ modelId })
1142+
// Create agent with explicit ConverseModel
1143+
const explicitModel = new ConverseModel({ modelId })
11441144
const agentWithExplicit = new Agent({ model: explicitModel })
11451145

11461146
// Both should have same modelId

0 commit comments

Comments
 (0)