tptacek 2 days ago

A reminder that, while this is pretty neat and also probably offers a lot of convenient tooling for GCloud resources already built, an "agent" is simply an LLM call in a loop, each call presenting some number of available tools. If you're building your first agent, I'd recommend coding to an LLM API (probably the OpenAI Responses API, which is sort of a lingua franca of LLMs now) directly.

This is one of those cases where it's really helpful to code, at least once, at one layer of abstraction below the one that seems most natural to you.

  • czbond 2 days ago

    Agree. I've first used the Responses endpoint, and besides context like questions - it made me realize I did not want to build or self host in a lot of the gaps AI agents really needed. Eg: context, security, controls, external data source connection management, interaction mapping, etc.

red_hare 2 days ago

Having tried a few of these agent frameworks now, ADK-Python has easily been my favorite.

- It’s conceptually simple. An agent is just an object, you assign it tools that are just functions, and agents can call other agents.

- It’s "batteries included". You get a built-in code execution environment for doing math, session management, and web-server mode for debugging with a front-end.

- Optional callbacks provide clean hooks into the magic (for example, anonymizing or de-anonymizing data before and after LLM calls).

- It integrates with any model, supports MCP servers, and easy enough to hack in your existing session management system.

I'm working on a course in agent development and it's the framework I plan to teach with.

I would absolutely take this for a spin if I didn't hate Go so much :)

  • RamblingCTO a day ago

    Maybe also consider pocketflow, it's even more simple and verbose.

jand 2 days ago

I have not test-driven adk-go. But if you - like me - have not toyed around with agents until now, there is a readable, nice example in [1] which explains itself.

[1] https://github.com/google/adk-go/tree/main/examples/web

  • czbond 2 days ago

    I was surprised a native typescript style agent wasn't a core initial offering.

elzbardico 2 days ago

Why doing agents with go?

Python is way more ergonomic when dealing with text than go. Go's performance advantages are basically irrelevant in an AI agent, as execution time is dominated by inference time.

  • tptacek a day ago

    Go is pretty fantastic to write agents in; it has a very good and expansive standard library and a huge mess of third-party libraries. A lot of very basic things agents tend to want to do (make HTTP requests, manage SQLite databases) are very idiomatic in Go already. It's easy to express concurrency in Go, which is nice if you're running multiple context windows and don't want to serialize your whole agent on slow model calls. It's very fast and it compiles to binaries, which, depending on how you're deploying your agent, might be a big win or might not be.

    • jryio a day ago

      Yes and I'll add that Go routines can model task queues in Go code easily - then schedule and cancel those task reliably using context cancellation and channels. All while being executed concurrently (or in parallel).

      Go is the sweet spot in expressive concurrency, a compile time type system, and a strong standard library with excellent tooling as you mentioned.

      My hope is that, similar to Ruby in web development, Python's mind share in LLM coding will be siphoned to Go.

      • adastra22 a day ago

        Go, or Rust. Not here to fight language wars, but either of these two popular languages would be vastly better than Python.

  • JyB a day ago

    Concurrency. Unless you’re happy stopping the world on llm io… Go excels at handling network calls and the like. It’s basically what agents are.

  • stpedgwdgfhgdd a day ago

    Because Go has stronger compile-time type safety than Python. And of course concurrency.

    Fwiiw I noticed that colleagues using other languages like Java and JS with Claude Code sometimes get compile errors. I never get compile errors (anymore) with Go. The language is ideal for LLMs. Cant tell how CC is doing lately for Python.

  • srameshc 2 days ago

    Why not Go ? AI agents are not just scripts, they are the same as any other application that needs to scale. Java or Go, if application can perform better then it is always good to have an option.

  • mhast 2 days ago

    There are Python bindings for the framework as well.

    Personally I could see Go being quite nice to use if you want to deploy something as eg a compiled serverless function.

    I'm assuming the framework behaves the same way regardless of language so you could test using Python first if you want and then move over to eg Go if needed.

  • PantaloonFlames a day ago

    100%, I don’t really get the justification for golang, today. But. Looking forward we can imagine a world of agents, agents everywhere , including embedded into systems that are built in go. So I guess it would be more suitable for that.

kami23 2 days ago

Been looking forward to this. I'm not up to date on my python and reviewing Claude's implementation of the python library has taught me a lot.

Gonna point Claude at our repo and see if I can do an easy conversion, makes the amount of reviews I have to do a bit more bearable.

fishmicrowaver 2 days ago

Is there anything substantively better here vs. the many other agent frameworks, or is this just the gemini specific answer to them?

  • PantaloonFlames a day ago

    This is a golang variant of the already released “agent development kit” in Java and python.

    And… none of them are Gemini specific. You can use them with any model you like, including Gemini.

    I’m not an expert but comparing it to langgraph, it’s more opinionated , less flexible. But, easier to get started for basic agent apps.

    Worth a spin.

  • muratsu a day ago

    fwiw it says it is gemini optimized on readme. Unsure to what extent

czbond 2 days ago

Thanks for posting. I am in the midst of evaluating some combination of n8n, open ai swarms, and others. This is a great addition

  • JyB a day ago

    In also interested in n8n. From what I gathered it’s a everything baked in app, not a lib. Meaning that unless you re doing upstream contributions you don’t actually code anything. Just manage big configs. How are you planning to use this toolkit with it?