adk-js
An open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
Description
An open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
README
An open-source, code-first TypeScript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
Agent Development Kit (ADK) is designed for developers seeking fine-grained control and flexibility when building advanced AI agents that are tightly integrated with services in Google Cloud. It allows you to define agent behavior, orchestration, and tool use directly in code, enabling robust debugging, versioning, and deployment anywhere โ from your laptop to the cloud.
-
Rich Tool Ecosystem: Utilize pre-built tools, custom functions, OpenAPI specs, or integrate existing tools to give agents diverse capabilities, all for tight integration with the Google ecosystem.
-
Code-First Development: Define agent logic, tools, and orchestration directly in TypeScript for ultimate flexibility, testability, and versioning.
-
Modular Multi-Agent Systems: Design scalable applications by composing multiple specialized agents into flexible hierarchies.
If you're using npm, add the following to your dependencies:
npm install @google/adkOr with yarn:
yarn add @google/adkFor building, evaluating, and deploying agents by follow the TypeScript documentation & samples:
import {LlmAgent, GOOGLE_SEARCH} from '@google/adk';
const rootAgent = new LlmAgent({
name: 'search_assistant',
description: 'An assistant that can search the web.',
model: 'gemini-2.5-flash', // Or your preferred models
instruction:
'You are a helpful assistant. Answer user questions using Google Search when needed.',
tools: [GOOGLE_SEARCH],
});Same as the Python Development UI. A built-in development UI to help you test,
evaluate, debug, and showcase your agent(s).

Coming soon...
For remote agent-to-agent communication, ADK integrates with the A2A protocol. Examples coming soon...
To set up the project and build it from source, follow these steps:
-
Install dependencies:
npm install
-
Build the project: This project uses
esbuildto compile and bundle the TypeScript source code. You can build the project using the following npm scripts:npm run build: Compiles the TypeScript code into CommonJS, ESM, and Web formats in thedistdirectory.npm run build:bundle: Creates bundled versions of the output for easier distribution or use in environments that don't support tree-shaking well.npm run build:watch: Watches for changes in the source files and automatically rebuilds the project for ESM format only.
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
- General contribution guideline and flow.
- Then if you want to contribute code, please read Code Contributing Guidelines to get started.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the Service Specific Terms. Pre-GA features are available "as is" and might have limited support. For more information, see the launch stage descriptions.
Happy Agent Building!
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| devtools-v1.2.0 | ## [1.2.0](https://github.com/google/adk-js/compare/devtools-v1.1.0...devtools-v1.2.0) (2026-06-02) ### Features * abort agent execution on HTTP connection disconnected ([#382](https://github.com/google/adk-js/issues/382)) ([e7776cc](https://github.com/google/adk-js/commit/e7776ccbfbeb7657c0f0a3411173ae9bbf2ec0dd)) * Add Agent Engine deployment support ([#335](https://github.com/google/adk-js/issues/335)) ([3e901a5](https://github.com/google/adk-js/commit/3e901a5b2d4c291628c9f88f223803a7e9269 | High | 6/3/2026 |
| devtools-v1.1.0 | ## [1.1.0](https://github.com/google/adk-js/compare/devtools-v1.0.0...devtools-v1.1.0) (2026-04-28) ### Bug Fixes * fix adk web ui source code serving path ([#309](https://github.com/google/adk-js/issues/309)) ([b92c238](https://github.com/google/adk-js/commit/b92c2387622cedec880227ed6a6af4b5559d43e3)) ### Dependencies * The following workspace dependencies were updated * dependencies * @google/adk bumped from ^1.0.0 to ^1.1.0 | High | 4/28/2026 |
| devtools-v1.0.0 | ## [1.0.0](https://github.com/google/adk-js/compare/devtools-v0.6.1...devtools-v1.0.0) (2026-04-21) ### Features * export AdkApiServer from @google/adk-devtools package ([#245](https://github.com/google/adk-js/issues/245)) ([0887e40](https://github.com/google/adk-js/commit/0887e4082974fb500a67411ded196f31e9d790bf)) * keep original __dirname, __filename and import.meta.url value for compiled agent files. ([#254](https://github.com/google/adk-js/issues/254)) ([db89a42](https://github.com/google | High | 4/21/2026 |
| adk-v1.0.0 | ## [1.0.0](https://github.com/google/adk-js/compare/adk-v0.6.1...adk-v1.0.0) (2026-04-21) ### Features * add Agent type alias for LlmAgent to keep parity with Python ADK. ([#242](https://github.com/google/adk-js/issues/242)) ([03da958](https://github.com/google/adk-js/commit/03da95820efb5cdbca045f0621f15c5a60efe2ea)) * add auth preprocessor and update auth handler. ([#227](https://github.com/google/adk-js/issues/227)) ([e94c181](https://github.com/google/adk-js/commit/e94c181d50760b47dde5b230 | High | 4/21/2026 |
| main-v1.0.0 | ## [1.0.0](https://github.com/google/adk-js/compare/main-v0.6.1...main-v1.0.0) (2026-04-21) ### Features * add Agent type alias for LlmAgent to keep parity with Python ADK. ([#242](https://github.com/google/adk-js/issues/242)) ([03da958](https://github.com/google/adk-js/commit/03da95820efb5cdbca045f0621f15c5a60efe2ea)) * add auth preprocessor and update auth handler. ([#227](https://github.com/google/adk-js/issues/227)) ([e94c181](https://github.com/google/adk-js/commit/e94c181d50760b47dde5b2 | High | 4/21/2026 |
| devtools-v0.6.1 | ## [0.6.1](https://github.com/google/adk-js/compare/devtools-v0.6.0...devtools-v0.6.1) (2026-03-30) ### Bug Fixes * support native addon agent deps ([#219](https://github.com/google/adk-js/issues/219)) ([a13ee82](https://github.com/google/adk-js/commit/a13ee8244fb9d843a4123732ab5c28bbc49aeb7a)) ### Dependencies * The following workspace dependencies were updated * dependencies * @google/adk bumped from ^0.6.0 to ^0.6.1 | Medium | 3/31/2026 |
| main-v0.6.1 | ## [0.6.1](https://github.com/google/adk-js/compare/main-v0.6.0...main-v0.6.1) (2026-03-30) ### Bug Fixes * add support for MCP type array instead of string only in gemini_schema_util ([#199](https://github.com/google/adk-js/issues/199)) ([9cb4a33](https://github.com/google/adk-js/commit/9cb4a33b9a15718e97cbda532a04f1e91c45389e)) * support native addon agent deps ([#219](https://github.com/google/adk-js/issues/219)) ([a13ee82](https://github.com/google/adk-js/commit/a13ee8244fb9d843a4123732ab | Medium | 3/31/2026 |
| adk-v0.6.1 | ## [0.6.1](https://github.com/google/adk-js/compare/adk-v0.6.0...adk-v0.6.1) (2026-03-30) ### Bug Fixes * add support for MCP type array instead of string only in gemini_schema_util ([#199](https://github.com/google/adk-js/issues/199)) ([9cb4a33](https://github.com/google/adk-js/commit/9cb4a33b9a15718e97cbda532a04f1e91c45389e)) | Medium | 3/31/2026 |
| devtools-v0.6.0 | ## [0.6.0](https://github.com/google/adk-js/compare/devtools-v0.5.0...devtools-v0.6.0) (2026-03-23) ### Features * A2A integration: A2A Remote agent ([#190](https://github.com/google/adk-js/issues/190)) ([c6b75a2](https://github.com/google/adk-js/commit/c6b75a29683b0bbac98e1e17d811aa958025a11a)) * A2A integration: Add CLI option and serve ADK agents via A2A ([#188](https://github.com/google/adk-js/issues/188)) ([3897ee9](https://github.com/google/adk-js/commit/3897ee99df7122b57e4ff2c29b | Medium | 3/25/2026 |
| main-v0.6.0 | ## [0.6.0](https://github.com/google/adk-js/compare/main-v0.5.0...main-v0.6.0) (2026-03-23) ### Features * A2A integration: A2A Remote agent ([#190](https://github.com/google/adk-js/issues/190)) ([c6b75a2](https://github.com/google/adk-js/commit/c6b75a29683b0bbac98e1e17d811aa958025a11a)) * A2A integration: Add CLI option and serve ADK agents via A2A ([#188](https://github.com/google/adk-js/issues/188)) ([3897ee9](https://github.com/google/adk-js/commit/3897ee99df7122b57e4ff2c29b3f6806d6cb1ff4 | Medium | 3/25/2026 |
| adk-v0.6.0 | ## [0.6.0](https://github.com/google/adk-js/compare/adk-v0.5.0...adk-v0.6.0) (2026-03-23) ### Features * A2A integration: A2A Remote agent ([#190](https://github.com/google/adk-js/issues/190)) ([c6b75a2](https://github.com/google/adk-js/commit/c6b75a29683b0bbac98e1e17d811aa958025a11a)) * A2A integration: Add CLI option and serve ADK agents via A2A ([#188](https://github.com/google/adk-js/issues/188)) ([3897ee9](https://github.com/google/adk-js/commit/3897ee99df7122b57e4ff2c29b3f6806d6cb | Medium | 3/25/2026 |
| devtools-v0.5.0 | ## [0.5.0](https://github.com/google/adk-js/compare/devtools-v0.4.0...devtools-v0.5.0) (2026-03-09) ### Features * integrate with ADK conformance tests ([#168](https://github.com/google/adk-js/issues/168)) ([3a7c012](https://github.com/google/adk-js/commit/3a7c012e035f665dbf200640c10caa6e6dd82aa3)) ### Dependencies * The following workspace dependencies were updated * dependencies * @google/adk bumped from ^0.4.0 to ^0.5.0 | Low | 3/9/2026 |
| main-v0.5.0 | ## [0.5.0](https://github.com/google/adk-js/compare/main-v0.4.0...main-v0.5.0) (2026-03-09) ### Breaking Changes * CallbackContext and ToolContext are unified into a single Context class. It is a drop-in replacement for both. ### Features * Add ability to prefix toolsets to avoid tool name conflicts ([#184](https://github.com/google/adk-js/issues/184)) ([95837b2](https://github.com/google/adk-js/commit/95837b2d6e89a3455f104c352c5ef7e9077b989a)) * implement ExitLoopTool similar to Py | Low | 3/9/2026 |
| adk-v0.5.0 | ## [0.5.0](https://github.com/google/adk-js/compare/adk-v0.4.0...adk-v0.5.0) (2026-03-09) ### Features * Add ability to prefix toolsets to avoid tool name conflicts ([#184](https://github.com/google/adk-js/issues/184)) ([95837b2](https://github.com/google/adk-js/commit/95837b2d6e89a3455f104c352c5ef7e9077b989a)) * implement ExitLoopTool similar to Python and Java ADK equivalent ([#170](https://github.com/google/adk-js/issues/170)) ([258998f](https://github.com/google/adk-js/commit/258998f7fbd0 | Low | 3/9/2026 |
| devtools-v0.4.0 | ## [0.4.0](https://github.com/google/adk-js/compare/devtools-v0.3.0...devtools-v0.4.0) (2026-02-25) ### Features * Add ADK CLI version command. ([#115](https://github.com/google/adk-js/issues/115)) ([871be23](https://github.com/google/adk-js/commit/871be23acd020571b47129c96cc25730cd2d8e19)) * add database session service ([b3c38fe](https://github.com/google/adk-js/commit/b3c38feeb006cf40d0c7b71abe3afd052febb9b1)) * flip ADK CLI to be ESM native instead of CommonJS. ([#113](https://gith | Low | 2/25/2026 |
| adk-v0.4.0 | ## [0.4.0](https://github.com/google/adk-js/compare/adk-v0.3.0...adk-v0.4.0) (2026-02-25) ### Features * Add ApigeeLlm to the typescript ADK ([#125](https://github.com/google/adk-js/issues/125)) ([9e42b25](https://github.com/google/adk-js/commit/9e42b257d10117b4900374b257029ec6572eca0e)) * add database session service ([b3c38fe](https://github.com/google/adk-js/commit/b3c38feeb006cf40d0c7b71abe3afd052febb9b1)) * flip ADK CLI to be ESM native instead of CommonJS. ([#113](https://github. | Low | 2/25/2026 |
| main-v0.4.0 | ## [0.4.0](https://github.com/google/adk-js/compare/main-v0.3.0...main-v0.4.0) (2026-02-25) ### Features * Add ADK CLI version command. ([#115](https://github.com/google/adk-js/issues/115)) ([871be23](https://github.com/google/adk-js/commit/871be23acd020571b47129c96cc25730cd2d8e19)) * Add ApigeeLlm to the typescript ADK ([#125](https://github.com/google/adk-js/issues/125)) ([9e42b25](https://github.com/google/adk-js/commit/9e42b257d10117b4900374b257029ec6572eca0e)) * add database session serv | Low | 2/25/2026 |
| devtools-v0.3.0 | ## [0.3.0](https://github.com/google/adk-js/compare/devtools-v0.2.5...devtools-v0.3.0) (2026-01-31) ### Features * support Zod v3 and v4. ([#46](https://github.com/google/adk-js/issues/46)) ([accb7ca](https://github.com/google/adk-js/commit/accb7ca3bdec1295c81a4966177a2d5ed1103313)) ### Miscellaneous Chores * support release-please for release automation ([2c55c5d](https://github.com/google/adk-js/commit/2c55c5d09f56b18f7adea61d0106c7f77112bde1)) ### Dependencies * The following workspa | Low | 1/31/2026 |
| adk-v0.3.0 | ## [0.3.0](https://github.com/google/adk-js/compare/adk-v0.2.5...adk-v0.3.0) (2026-01-31) ### Features * Add headers option for MCP Session manager and deprecate the header option. ([#98](https://github.com/google/adk-js/issues/98)) ([c28aae3](https://github.com/google/adk-js/commit/c28aae311948522cc769a8346b3e2af3653fcf46)) * add setLogger() for custom logger support ([#96](https://github.com/google/adk-js/issues/96)) ([7e96728](https://github.com/google/adk-js/commit/7e967282757ed66f5a9f45a | Low | 1/31/2026 |
| main-v0.3.0 | ## [0.3.0](https://github.com/google/adk-js/compare/main-v0.2.5...main-v0.3.0) (2026-01-31) ### Features * Add headers option for MCP Session manager and deprecate the header option. ([#98](https://github.com/google/adk-js/issues/98)) ([c28aae3](https://github.com/google/adk-js/commit/c28aae311948522cc769a8346b3e2af3653fcf46)) * add setLogger() for custom logger support ([#96](https://github.com/google/adk-js/issues/96)) ([7e96728](https://github.com/google/adk-js/commit/7e967282757ed66f5a9f4 | Low | 1/31/2026 |
| devtools-v0.2.5 | ## [0.2.5](https://github.com/google/adk-js/compare/v0.2.4...devtools-v0.2.5) (2026-01-28) ### Miscellaneous Chores * support release-please for release automation ([2c55c5d](https://github.com/google/adk-js/commit/2c55c5d09f56b18f7adea61d0106c7f77112bde1)) ### Dependencies * The following workspace dependencies were updated * dependencies * @google/adk bumped from ^0.2.4 to ^0.2.5 | Low | 1/29/2026 |
| adk-v0.2.5 | ## [0.2.5](https://github.com/google/adk-js/compare/v0.2.4...adk-v0.2.5) (2026-01-28) ### Bug Fixes * handle empty MCP schema types during Gemini conversion ([345d16b](https://github.com/google/adk-js/commit/345d16b)) * Fix bug when ADK web server crashes on agent graph generation ([3c7f28e](https://github.com/google/adk-js/commit/3c7f28e)) ### Changed * Update the test as per review to use toEqual ([5680f93](https://github.com/google/adk-js/commit/5680f93)) * Stop using `instanceo | Low | 1/29/2026 |
| v0.2.4 | **Full Changelog**: https://github.com/google/adk-js/compare/v0.2.3...v0.2.4 | Low | 1/17/2026 |
| v0.2.3 | Bumping version to 0.2.3 to fix lodash import errors. **Full Changelog**: https://github.com/google/adk-js/compare/v0.2.2...v0.2.3 | Low | 1/15/2026 |
| v0.2.2 | ## What's Changed * Auth credential exchange registry implementation by @hariprasath2603 in https://github.com/google/adk-js/pull/15 * Add support to create a new agent through NPX by @nohe427 in https://github.com/google/adk-js/pull/25 * Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https://github.com/google/adk-js/pull/20 * fix(#37): add proper type inference to functional tool parameters tโฆ by @jagadhis in https://github.com/google/adk-js/pull/40 * Fix: Pass header pa | Low | 1/8/2026 |
| v0.2.1 | Bumping to version 0.2.1 ## What's Changed * Revise README for 0.2.1. by @dewitt in https://github.com/google/adk-js/pull/19 ## New Contributors * @dewitt made their first contribution in https://github.com/google/adk-js/pull/19 **Full Changelog**: https://github.com/google/adk-js/compare/v0.2.0...v0.2.1 | Low | 12/17/2025 |
| v0.2.0 | Bump to version 0.2.0 ## What's Changed * Integrate OpenTelemetry (OTel) support by @mingjourney in https://github.com/google/adk-js/pull/10 * Cleaning up parsing logic for "foreign events" by @karmel in https://github.com/google/adk-js/pull/14 ## New Contributors * @mingjourney made their first contribution in https://github.com/google/adk-js/pull/10 * @karmel made their first contribution in https://github.com/google/adk-js/pull/14 **Full Changelog**: https://github.com/google/adk | Low | 12/15/2025 |
| v0.1.3 | ## What's Changed * Add esbuild to bundle the source code by @kalenkevich in https://github.com/google/adk-js/pull/2 * chore: Add caution note to README about project stability by @tpryan in https://github.com/google/adk-js/pull/8 ## New Contributors * @tpryan made their first contribution in https://github.com/google/adk-js/pull/8 **Full Changelog**: https://github.com/google/adk-js/commits/v0.1.3 | Low | 12/12/2025 |

