{"id":48150456,"url":"https://github.com/sps014/googleadk-cs","last_synced_at":"2026-04-12T16:38:08.170Z","repository":{"id":348785473,"uuid":"1197256144","full_name":"sps014/GoogleAdk-cs","owner":"sps014","description":"An open-source, code-first C# (Dotnet) toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.","archived":false,"fork":false,"pushed_at":"2026-04-05T17:13:45.000Z","size":3393,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T18:17:47.592Z","etag":null,"topics":["agent-framework","gemini","google-adk","vertex-ai"],"latest_commit_sha":null,"homepage":"https://sps014.github.io/GoogleAdk-cs/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sps014.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-31T12:50:54.000Z","updated_at":"2026-04-05T17:13:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"48300ab0-3a1e-4c64-9813-d93c2b33273a","html_url":"https://github.com/sps014/GoogleAdk-cs","commit_stats":null,"previous_names":["sps014/googleadk-cs"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/sps014/GoogleAdk-cs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sps014%2FGoogleAdk-cs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sps014%2FGoogleAdk-cs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sps014%2FGoogleAdk-cs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sps014%2FGoogleAdk-cs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sps014","download_url":"https://codeload.github.com/sps014/GoogleAdk-cs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sps014%2FGoogleAdk-cs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31485516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-framework","gemini","google-adk","vertex-ai"],"created_at":"2026-04-04T17:10:46.387Z","updated_at":"2026-04-12T16:38:08.158Z","avatar_url":"https://github.com/sps014.png","language":"C#","readme":"# Agent Development Kit (ADK) for .NET (C#)\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE.md)\n[![NuGet](https://img.shields.io/badge/NuGet-Preview-informational)](#-installation)\n\n\u003chtml\u003e\n    \u003ch2 align=\"center\"\u003e\n      \u003cimg src=\"https://raw.githubusercontent.com/google/adk-python/main/assets/agent-development-kit.png\" width=\"256\"/\u003e\n    \u003c/h2\u003e\n    \u003ch3 align=\"center\"\u003e\n      An open-source, code-first .NET toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.\n    \u003c/h3\u003e\n  \n\u003c/html\u003e\n\nAgent Development Kit (ADK) is designed for developers seeking fine-grained\ncontrol and flexibility when building advanced AI agents that are tightly\nintegrated with services in Google Cloud. It allows you to define agent\nbehavior, orchestration, and tool use directly in code, enabling robust\ndebugging, versioning, and deployment anywhere – from your laptop to the cloud.\n\n---\n\n\u003e **⚠️ EXPERIMENTAL** - This project is in active development and the API will change. Builds are nightly and super frequent and may contain breaking changes. Use in production at your own risk.\n\n## ✨ Key Features\n\n### 🧠 Intelligence \u0026 Models\n\n- **Model Backends**: Support for **Gemini** (`GoogleAdk.Models.Gemini`) and **MEAI** (`GoogleAdk.Models.Meai`) for providers like Ollama. [More info](docs/models.md).\n- **Planning**: Equip agents with ReAct-style planners via natural-language processing. [More info](docs/planning.md).\n- **Caching**: Prompt and context caching using Gemini-backed implicit caching. [More info](docs/caching.md).\n\n### 🛠️ Tools \u0026 Integrations\n\n- **C# Source Gen Tools**: Effortlessly turn methods into tools using the `[FunctionTool]` attribute. [More info](docs/tools.md).\n- **MCP Support**: Full Model Context Protocol integration with dynamic tool discovery. [More info](docs/mcp.md).\n- **OpenAPI Integration**: Generate tools seamlessly from OpenAPI specs.\n- **Code Execution**: Run generated code within secure environments. [More info](docs/code-execution.md).\n- **Text-to-Speech (TTS)**: Generate audio directly from compatible LLMs like `gemini-2.5-flash-preview-tts`. [More info](docs/tts.md).\n- **Built-in Tools**: Use pre-configured tools for Google Search, Maps, Vertex AI, code execution, and more. [More info](docs/features.md).\n\n### 🔄 Orchestration \u0026 Workflows\n\n- **Agent Orchestration**: Combine agents using `SequentialAgent`, `ParallelAgent`, or `LoopAgent` with customizable LLM pipelines. [More info](docs/orchestration.md).\n- **A2A Protocol**: Built-in support for Remote Agent-to-Agent communication (both Client and Server). [More info](docs/a2a.md).\n- **Plugins \u0026 Telemetry**: Lifecycle hooks, streaming events, and OpenTelemetry-style tracing. [More info](docs/plugins.md).\n\n### 💾 State \u0026 Memory\n\n- **State Management**: Flexible session state with placeholder injection for dynamic instructions. [More info](docs/state.md).\n- **Memory**: Built-in memory services and persistence options including EF Core storage. [More info](docs/memory.md).\n\n### 🚀 Development \u0026 Deployment\n\n- **Code-First Approach**: Define agents, tools, and logic in C# for great testability and versioning.\n- **ADK Web UI**: Embedded development server with a rich UI, REST/WebSocket APIs, and Swagger. [More info](docs/running-agents.md).\n- **Evaluation**: Tools for systematic prompt/agent tuning and LLM-as-judge scoring. [More info](docs/evaluation-optimization.md).\n\n## 🚀 Installation\n\nInstall the preview package via NuGet:\n\n```bash\ndotnet add package GoogleAdk --prerelease\n```\n\n## 📚 Documentation\n\nFor building, evaluating, and deploying agents, follow the docs and samples:\n\n- **[In-repo docs](docs/index.md)** (feature guides for this .NET port)\n- **[Samples](https://github.com/sps014/GoogleAdk-cs/tree/main/samples)**\n\n## 🏁 Feature Highlight\n\n### Same Features \u0026 Familiar Interface As Other ADKs:\n\n```csharp\n// Load env variables like GOOGLE_API_KEY\nAdkEnv.Load();\n\nvar rootAgent = new LlmAgent(new LlmAgentConfig\n{\n    Name = \"search_assistant\",\n    Description = \"An assistant that can search the web.\",\n    Model = \"gemini-2.5-flash\",\n    Instruction = \"You are a helpful assistant. Answer user questions using Google Search when needed. If User asks about weather use the GetWeather tool\",\n    \n    // GetWeatherDataTool is generated from GetWeatherData in the format ADK expects\n    Tools = [new GoogleSearchTool(), GetWeatherDataTool]\n});\n\n// Creates a webserver that can launch the ADK web UI and other endpoints \nawait AdkServer.RunAsync(rootAgent);\n\n/// \u003csummary\u003e\n/// Fetches the current weather data for a given location.\n/// \u003c/summary\u003e\n/// \u003cparam name=\"location\"\u003eThe location to get the weather for (e.g., 'New York')\u003c/param\u003e\n/// \u003creturns\u003eA WeatherData object containing the location and forecast\u003c/returns\u003e\n[FunctionTool]\nstatic WeatherData? GetWeatherData(string location)\n{\n    return new WeatherData(location, \"Sunny with a chance of rainbows\");\n}\n\npublic record WeatherData(string Location, string Forecast);\n```\n\n### Development UI\n\nSame as the Python Development UI. A built-in development UI to help you test,\nevaluate, debug, and showcase your agent(s).\n\n\u003cimg  alt=\"Image\" src=\"https://github.com/user-attachments/assets/1f8db230-b8f2-4b3c-85c8-54c32ea9e379\" /\u003e\n\n### Evaluate Agents\n\nUse `GoogleAdk.Evaluation` and `GoogleAdk.Optimization` for eval sets, inference\nruns, scoring, and prompt tuning. See\n[docs/evaluation-optimization.md](docs/evaluation-optimization.md) and sample\n`GoogleAdk.Samples.EvalOptimize`.\n\n## 🤖 A2A and ADK integration\n\nRemote agent-to-agent communication uses the\n[A2A protocol](https://github.com/google/A2A/). **Client** code lives under\n`src/GoogleAdk.Core/A2a`; **server** wiring is in `GoogleAdk.ApiServer` (`MapA2aApi`).\nEnd-to-end coverage is in `tests/GoogleAdk.E2e.Tests`. See [docs/a2a.md](docs/a2a.md).\n\n\n## 🏗️ Building the Project\n\nTo set up the project and build it from source, follow these steps:\n\n1. **Install dependencies**:\n\n   ```bash\n   dotnet restore \"GoogleAdk/GoogleAdk.slnx\"\n   ```\n\n2. **Build the project**:\n\n   ```bash\n   dotnet build \"GoogleAdk/GoogleAdk.slnx\"\n   ```\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Whether it's bug reports, feature\nrequests, documentation improvements, or code contributions, please see our\nguidelines:\n\n- [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/).\n- Then if you want to contribute code, please read\n  [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.\n\n## 📄 License and intellectual property\n\nGoogle’s **Agent Development Kit (ADK)**—the reference product family (for example, the Python ADK), its documentation, and related Google materials—is a **copyrighted product of Google LLC** and/or its affiliates. Google retains applicable rights in that product and in the **ADK** and **Google** trademarks.\n\n**This repository** is a **.NET port**: an open-source implementation aligned with ADK-style APIs and patterns. It is **not** described here as Google’s own first-party, directly Google-copyrighted release of ADK for .NET; copyright in this port belongs to **its contributors**, who license the code under the **Apache License, Version 2.0**. See **[LICENSE.md](LICENSE.md)** for the full terms, including how upstream ADK, this port, and trademarks are distinguished.\n\nUse, reproduction, and distribution of this repository are governed by the **Apache License, Version 2.0**; it does **not** transfer ownership of Google’s ADK, Google’s trademarks, or third-party materials to you. Third-party components may be subject to separate licenses as noted in the applicable files or notices.\n\nIf you contribute code, your contributions may be subject to the contributor license arrangements described in the contribution documentation. Nothing in this README is legal advice or a waiver of Google’s or any third party’s rights except as stated in **[LICENSE.md](LICENSE.md)** and applicable licenses.\n\n---\n\n_Happy Agent Building!_\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsps014%2Fgoogleadk-cs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsps014%2Fgoogleadk-cs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsps014%2Fgoogleadk-cs/lists"}