Packages

Agent Development Kit for Elixir — OTP-native AI agent framework inspired by Google ADK

Current section

Files

Jump to
adk mix.exs
Raw

mix.exs

defmodule ADK.MixProject do
use Mix.Project
@version "0.0.1"
@source_url "https://github.com/zeroasterisk/adk-elixir"
@description "Agent Development Kit for Elixir — OTP-native AI agent framework inspired by Google ADK"
def project do
[
app: :adk,
version: @version,
elixir: "~> 1.14",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
package: package(),
# Docs
name: "ADK",
description: @description,
source_url: @source_url,
homepage_url: @source_url,
docs: docs()
]
end
def application do
[
mod: {ADK.Application, []},
extra_applications: [:logger, :crypto]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp package do
[
name: "adk",
description: @description,
licenses: ["Apache-2.0"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"Google ADK (Python)" => "https://github.com/google/adk-python"
},
files: ~w(
lib priv mix.exs
README.md LICENSE CHANGELOG.md
)
]
end
defp deps do
[
{:mox, "~> 1.0", only: :test},
{:bypass, "~> 2.1", only: :test},
{:ex_doc, "~> 0.31", only: :dev, runtime: false},
# A2A protocol support — optional, install {:a2a, "~> 0.2"} to enable
# See: https://hex.pm/packages/a2a
{:a2a, "~> 0.2", optional: true},
{:jason, "~> 1.4"},
{:req, "~> 0.5"},
{:plug, "~> 1.14", optional: true},
{:bandit, "~> 1.5", optional: true},
{:ecto, "~> 3.10", optional: true},
{:ecto_sql, "~> 3.10", optional: true},
{:exqlite, "~> 0.35", optional: true},
{:ecto_sqlite3, "~> 0.17", only: :test},
{:benchee, "~> 1.3", only: :dev, runtime: false},
{:telemetry, "~> 1.0"},
{:opentelemetry_api, "~> 1.0", optional: true},
{:opentelemetry, "~> 1.3", only: :test},
{:opentelemetry_exporter, "~> 1.0", only: :test},
{:oban, "~> 2.18", optional: true},
{:phoenix, "~> 1.7", optional: true},
{:phoenix_live_view, "~> 1.0", optional: true},
{:phoenix_html, "~> 4.0", optional: true},
{:yaml_elixir, "~> 2.11"}
]
end
defp docs do
[
main: "readme",
extras: [
"README.md",
"docs/intentional-differences.md",
"guides/getting-started.md",
"guides/concepts.md",
"guides/mix-adk-new.md",
"guides/evaluations.md",
"guides/phoenix-integration.md",
"guides/supervision.md",
"guides/oban-integration.md",
"guides/dev-server.md",
"guides/adk-web-compatibility.md",
"guides/deployment.md",
"guides/benchmarks.md",
"guides/agent-patterns.md",
"guides/context-compilation.md",
"guides/context-engineering.md",
"guides/human-in-the-loop.md",
"CHANGELOG.md"
],
groups_for_modules: [
Core: [ADK, ADK.Agent, ADK.Tool, ADK.Event, ADK.Context, ADK.ToolContext],
Agents: [
ADK.Agent.LlmAgent,
ADK.Agent.SequentialAgent,
ADK.Agent.ParallelAgent,
ADK.Agent.LoopAgent,
ADK.Agent.Custom
],
Tools: [
ADK.Tool.FunctionTool,
ADK.Tool.Declarative,
ADK.Tool.ModuleTool,
ADK.Tool.TransferTool,
ADK.Tool.TransferToAgent,
ADK.Tool.SearchMemoryTool,
ADK.Tool.GoogleSearch,
ADK.Tool.BuiltInCodeExecution
],
"LLM Backends": [
ADK.LLM,
ADK.LLM.Mock,
ADK.LLM.Gemini,
ADK.LLM.OpenAI,
ADK.LLM.Anthropic,
ADK.LLM.Retry,
ADK.LLM.CircuitBreaker
],
"Sessions & State": [
ADK.Session,
ADK.Session.Store,
ADK.Session.Store.InMemory,
ADK.Session.Store.JsonFile,
ADK.Session.Store.Ecto,
ADK.State.Delta,
ADK.EventActions,
ADK.RunConfig
],
Memory: [
ADK.Memory.Entry,
ADK.Memory.Store,
ADK.Memory.InMemory
],
"Context & Compression": [
ADK.Context.Compressor,
ADK.Context.Compressor.Summarize,
ADK.Context.Compressor.Truncate,
ADK.Context.Compressor.SlidingWindow
],
Artifacts: [
ADK.Artifact.Store,
ADK.Artifact.InMemory,
ADK.Artifact.GCS
],
Auth: [
ADK.Auth.Config,
ADK.Auth.Credential,
ADK.Auth.CredentialStore,
ADK.Auth.InMemoryStore
],
Runner: [ADK.Runner, ADK.Runner.Async],
"A2A Protocol": [
ADK.A2A.Server,
ADK.A2A.Client,
ADK.A2A.AgentCard,
ADK.A2A.Message,
ADK.A2A.RemoteAgentTool
],
"Phoenix Integration": [
ADK.Phoenix.Controller,
ADK.Phoenix.Channel,
ADK.Phoenix.LiveHandler,
ADK.Phoenix.ChatLive,
ADK.Phoenix.WebRouter
],
Plugins: [
ADK.Plugin,
ADK.Plugin.Registry,
ADK.Plugin.ReflectRetry
],
MCP: [
ADK.MCP.Client,
ADK.MCP.ToolAdapter
],
Oban: [ADK.Oban.AgentWorker],
Policies: [ADK.Policy, ADK.Policy.DefaultPolicy],
Eval: [
ADK.Eval,
ADK.Eval.Case,
ADK.Eval.Scorer,
ADK.Eval.Result,
ADK.Eval.Report,
ADK.Eval.Scorer.ExactMatch,
ADK.Eval.Scorer.Contains,
ADK.Eval.Scorer.ToolUsed,
ADK.Eval.Scorer.ResponseLength
],
Telemetry: [ADK.Telemetry, ADK.Telemetry.SpanStore, ADK.Telemetry.DebugHandler],
"Mix Tasks": [Mix.Tasks.Adk.New, Mix.Tasks.Adk.Gen.Migration, Mix.Tasks.Adk.Server],
Internal: [ADK.Application, ADK.Callback, ADK.InstructionCompiler]
],
groups_for_extras: [
Guides: ~r/guides\/.*/
]
]
end
end