Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .changeset/fair-rocks-argue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
"@voltagent/voltagent-memory": major
"@voltagent/server-core": major
"@voltagent/postgres": major
"@voltagent/supabase": major
"@voltagent/scorers": major
"@voltagent/libsql": major
"@voltagent/core": major
"@voltagent/a2a-server": major
"@voltagent/ag-ui": major
"@voltagent/docs-mcp": major
"@voltagent/evals": major
"@voltagent/internal": major
"@voltagent/langfuse-exporter": major
"@voltagent/logger": major
"@voltagent/mcp-server": major
"@voltagent/rag": major
"@voltagent/sdk": major
"@voltagent/server-hono": major
"@voltagent/serverless-hono": major
"@voltagent/voice": major
---

feat: VoltAgent 2.x (AI SDK v6)

VoltAgent 2.x aligns the framework with AI SDK v6 and adds new features. VoltAgent APIs are compatible, but if you call AI SDK directly, follow the upstream v6 migration guide.

Migration summary (1.x -> 2.x):

1. Update VoltAgent packages

- `npm run volt update`
- If the CLI is missing: `npx @voltagent/cli init` then `npm run volt update`

2. Align AI SDK packages

- `pnpm add ai@^6 @ai-sdk/provider@^3 @ai-sdk/provider-utils@^4 @ai-sdk/openai@^3`
- If you use UI hooks, upgrade `@ai-sdk/react` to `^3`

3. Structured output

- `generateObject` and `streamObject` are deprecated in VoltAgent 2.x
- Use `generateText` / `streamText` with `Output.object(...)`

Full migration guide: https://voltagent.dev/docs/getting-started/migration-guide/
17 changes: 11 additions & 6 deletions docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,19 +92,24 @@ const mockExecute = vi.fn();
VoltAgent is built on top of the `ai` SDK, and uses the `ai/test` package to mock the AI SDK functions for testing.

```typescript
import { MockLanguageModelV2 } from "ai/test";
import { MockLanguageModelV3 } from "ai/test";
import { Agent } from "./agent";

describe("Agent", () => {
let mockModel: MockLanguageModelV2;
let mockModel: MockLanguageModelV3;

beforeEach(() => {
mockModel = new MockLanguageModelV2({
mockModel = new MockLanguageModelV3({
doGenerate: vi.fn().mockResolvedValue({
rawCall: { rawPrompt: null, rawSettings: {} },
finishReason: "stop",
usage: { promptTokens: 10, completionTokens: 20 },
text: "Hello, world!",
content: [{ type: "text", text: "Hello, world!" }],
usage: {
inputTokens: 10,
outputTokens: 20,
totalTokens: 30,
inputTokenDetails: { noCacheTokens: 10, cacheReadTokens: 0, cacheWriteTokens: 0 },
outputTokenDetails: { textTokens: 20, reasoningTokens: 0 },
},
}),
});
});
Expand Down
1 change: 1 addition & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ Create a multi-agent research workflow where different AI agents collaborate to
## All Examples

- [Base Starter](./base) — Minimal VoltAgent starter with a single agent, memory, and dev server.
- [PlanAgents](./with-planagents) — Quickstart for PlanAgents with planning, filesystem tools, and subagent tasks.
- [Slack](./with-slack) — Slack app mention bot that replies in the same channel/thread via VoltOps Slack actions.
- [Airtable](./with-airtable) — React to new Airtable records and write updates back using VoltOps Airtable actions.
- [GitHub Repo Analyzer](./github-repo-analyzer) — Agents read repository code and summarize insights/issues from GitHub projects.
Expand Down
14 changes: 7 additions & 7 deletions examples/base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
"name": "voltagent-example-base",
"author": "",
"dependencies": {
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/openai": "^3.0.0",
"@voltagent/cli": "^0.1.17",
"@voltagent/core": "^1.5.2",
"@voltagent/libsql": "^1.1.0",
"@voltagent/logger": "^1.0.4",
"@voltagent/server-hono": "^1.2.11",
"ai": "^5.0.76",
"ai": "^6.0.0",
"zod": "^3.25.76"
},
"devDependencies": {
Expand All @@ -23,16 +23,16 @@
],
"license": "MIT",
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/base"
},
"scripts": {
"build": "tsc",
"dev": "tsx watch --env-file=.env ./src",
"start": "node dist/index.js",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/base"
},
"type": "module"
}
14 changes: 7 additions & 7 deletions examples/github-repo-analyzer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
"name": "voltagent-example-github-repo-analyzer",
"version": "0.1.0",
"dependencies": {
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/openai": "^3.0.0",
"@octokit/rest": "^21.0.0",
"@voltagent/core": "^1.5.2",
"@voltagent/libsql": "^1.1.0",
"@voltagent/logger": "^1.0.4",
"@voltagent/server-hono": "^1.2.11",
"ai": "^5.0.76",
"ai": "^6.0.0",
"zod": "^3.25.76"
},
"devDependencies": {
Expand All @@ -18,15 +18,15 @@
"typescript": "^5.8.2"
},
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/github-repo-analyzer"
},
"scripts": {
"build": "tsc",
"dev": "tsx watch --env-file=.env ./src ",
"start": "node dist/index.js",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/github-repo-analyzer"
}
}
2 changes: 1 addition & 1 deletion examples/github-repo-analyzer/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const logger = createPinoLogger({

const memory = new Memory({
storage: new LibSQLMemoryAdapter({}),
embedding: new AiSdkEmbeddingAdapter(openai.textEmbeddingModel("text-embedding-3-small")),
embedding: new AiSdkEmbeddingAdapter(openai.embeddingModel("text-embedding-3-small")),
vector: new InMemoryVectorAdapter(),
});

Expand Down
12 changes: 6 additions & 6 deletions examples/github-star-stories/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "voltagent-example-github-star-stories",
"version": "0.0.0",
"dependencies": {
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/openai": "^3.0.0",
"@voltagent/cli": "^0.1.17",
"@voltagent/core": "^1.5.2",
"@voltagent/logger": "^1.0.4",
Expand All @@ -25,18 +25,18 @@
"voltagent"
],
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/github-star-stories"
},
"scripts": {
"build": "tsc",
"deploy": "wrangler deploy",
"dev": "tsx watch --env-file=.env ./src/index.ts",
"preview": "tsc && wrangler dev --local",
"start": "node dist/index.js",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/github-star-stories"
},
"type": "module"
}
22 changes: 11 additions & 11 deletions examples/next-js-chatbot-starter-template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"name": "voltagent-example-next-js-chatbot-starter-template",
"version": "0.1.0",
"dependencies": {
"@ai-sdk/anthropic": "^2.0.37",
"@ai-sdk/google": "^2.0.23",
"@ai-sdk/groq": "^2.0.24",
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/react": "^2.0.8",
"@ai-sdk/anthropic": "^3.0.0",
"@ai-sdk/google": "^3.0.0",
"@ai-sdk/groq": "^3.0.0",
"@ai-sdk/openai": "^3.0.0",
"@ai-sdk/react": "^3.0.0",
"@libsql/client": "^0.15.0",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-collapsible": "^1.1.12",
Expand All @@ -24,7 +24,7 @@
"@voltagent/libsql": "^1.1.0",
"@voltagent/server-hono": "^1.2.11",
"@xyflow/react": "^12.9.2",
"ai": "^5.0.76",
"ai": "^6.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
Expand Down Expand Up @@ -61,15 +61,15 @@
"typescript": "^5.8.2"
},
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/next-js-chatbot-starter-template"
},
"scripts": {
"build": "next build",
"dev": "next dev",
"start": "next start",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/next-js-chatbot-starter-template"
}
}
14 changes: 7 additions & 7 deletions examples/with-a2a-server/package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "voltagent-example-with-a2a-server",
"dependencies": {
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/openai": "^3.0.0",
"@voltagent/a2a-server": "^1.0.2",
"@voltagent/core": "^1.5.2",
"@voltagent/internal": "^0.0.12",
"@voltagent/logger": "^1.0.4",
"@voltagent/server-hono": "^1.2.11",
"ai": "^5.0.76",
"ai": "^6.0.0",
"zod": "^3.25.76"
},
"devDependencies": {
Expand All @@ -16,17 +16,17 @@
"typescript": "^5.8.2"
},
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-a2a-server"
},
"scripts": {
"build": "tsc",
"dev": "tsx watch --env-file=.env ./src",
"start": "node dist/index.js",
"test:smoke": "node ./scripts/smoke-test.mjs",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-a2a-server"
},
"type": "module"
}
16 changes: 8 additions & 8 deletions examples/with-ad-creator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"description": "A VoltAgent application",
"version": "0.1.1",
"dependencies": {
"@ai-sdk/google": "^2.0.23",
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/google": "^3.0.0",
"@ai-sdk/openai": "^3.0.0",
"@browserbasehq/sdk": "^2.6.0",
"@browserbasehq/stagehand": "^2.5.0",
"@google-cloud/aiplatform": "^5.7.0",
Expand All @@ -14,7 +14,7 @@
"@voltagent/libsql": "^1.0.9",
"@voltagent/logger": "^1.0.3",
"@voltagent/server-hono": "^1.0.22",
"ai": "^5.0.76",
"ai": "^6.0.0",
"dotenv": "^16.4.5",
"sharp": "^0.34.4",
"zod": "^3.25.76"
Expand All @@ -30,6 +30,11 @@
"node": ">=20.19.0"
},
"packageManager": "[email protected]+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac",
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-ad-creator"
},
"scripts": {
"build": "tsdown",
"dev": "tsx watch --env-file=.env ./src",
Expand All @@ -38,11 +43,6 @@
"start": "node dist/index.js",
"typecheck": "tsc --noEmit",
"volt": "volt"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-ad-creator"
},
"type": "module"
}
14 changes: 7 additions & 7 deletions examples/with-agent-tool/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"version": "1.0.0",
"author": "",
"dependencies": {
"@ai-sdk/openai": "^2.0.52",
"@ai-sdk/openai": "^3.0.0",
"@voltagent/core": "^1.5.2",
"ai": "^5.0.76",
"ai": "^6.0.0",
"zod": "^3.25.76"
},
"devDependencies": {
Expand All @@ -23,15 +23,15 @@
],
"license": "MIT",
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-agent-tool"
},
"scripts": {
"build": "tsc",
"dev": "tsx watch --env-file=.env ./src/index.ts",
"start": "tsx --env-file=.env ./src/index.ts"
},
"repository": {
"type": "git",
"url": "https://github.com/VoltAgent/voltagent.git",
"directory": "examples/with-agent-tool"
},
"type": "module"
}
Loading