freshcrate
Skin:/
Home > AI Agents > adk-js

adk-js

An open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

An open-source, code-first Typescript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

README

Agent Development Kit (ADK) for TypeScript

License NPM Version r/agentdevelopmentkit

An open-source, code-first TypeScript toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

Important Links: Docs, Samples, Python ADK. Java ADK, Go ADK & Web ADK.

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.


โœจ Key Features

  • 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.

๐Ÿš€ Installation

If you're using npm, add the following to your dependencies:

npm install @google/adk

Or with yarn:

yarn add @google/adk

๐Ÿ“š Documentation

For building, evaluating, and deploying agents by follow the TypeScript documentation & samples:

๐Ÿ Feature Highlight

Same Features & Familiar Interface As Other ADKs:

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],
});

Development UI

Same as the Python Development UI. A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).

Evaluate Agents

Coming soon...

๐Ÿค– A2A and ADK integration

For remote agent-to-agent communication, ADK integrates with the A2A protocol. Examples coming soon...

๐Ÿ—๏ธ Building the Project

To set up the project and build it from source, follow these steps:

  1. Install dependencies:

    npm install
  2. Build the project: This project uses esbuild to 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 the dist directory.
    • 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.

๐Ÿค Contributing

We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our

๐Ÿ“„ License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Preview

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

VersionChangesUrgencyDate
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/3e901a5b2d4c291628c9f88f223803a7e9269High6/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.0High4/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/googleHigh4/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/e94c181d50760b47dde5b230High4/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/e94c181d50760b47dde5b2High4/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.1Medium3/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/a13ee8244fb9d843a4123732abMedium3/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))Medium3/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/3897ee99df7122b57e4ff2c29bMedium3/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/3897ee99df7122b57e4ff2c29b3f6806d6cb1ff4Medium3/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/3897ee99df7122b57e4ff2c29b3f6806d6cbMedium3/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.0Low3/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 PyLow3/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/258998f7fbd0Low3/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://githLow2/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.Low2/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 servLow2/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 workspaLow1/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/7e967282757ed66f5a9f45aLow1/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/7e967282757ed66f5a9f4Low1/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.5Low1/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 `instanceoLow1/29/2026
v0.2.4**Full Changelog**: https://github.com/google/adk-js/compare/v0.2.3...v0.2.4Low1/17/2026
v0.2.3Bumping version to 0.2.3 to fix lodash import errors. **Full Changelog**: https://github.com/google/adk-js/compare/v0.2.2...v0.2.3Low1/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 paLow1/8/2026
v0.2.1Bumping 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.1Low12/17/2025
v0.2.0Bump 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/adkLow12/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.3Low12/12/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.v2.2.0
Autonomous-AgentsAutonomous Agents (LLMs) research papers. Updated Daily.main@2026-06-03
adk-javaAn open-source, code-first Java toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.v1.4.0
CopilotKitThe Frontend Stack for Agents & Generative UI. React + Angular. Makers of the AG-UI Protocolv1.59.5
mcp-verified-repo-memoryProvide reliable, repository-scoped memory for AI coding agents with code citations, just-in-time verification, and stale-proof data management.main@2026-06-02

More from google

adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
adk-javaAn open-source, code-first Java toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

More in AI Agents

hermes-agentThe agent that grows with you
awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.
CopilotKitThe Frontend Stack for Agents & Generative UI. React + Angular. Makers of the AG-UI Protocol
e2bE2B SDK that give agents cloud environments