Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Go for GenAI!

Go for GenAI!

Keynote presented at DevFest Bletchley Park 2025 highlighting the new developments in Go for GenAI

Avatar for Daniela Petruzalek

Daniela Petruzalek

December 01, 2025
Tweet

More Decks by Daniela Petruzalek

Other Decks in Programming

Transcript

  1. About me… DevRel at Google UK Originally from Brazil Backend

    / Data Engineer Currently obsessed with AI Love Games, Anime and Cats =^_^=
  2. Or because… It’s a compiled language Code is simple to

    read / maintain It has a rich standard library Great performance and tooling It is fun!* * based on my totally biased personal opinion
  3. Go for GenAI: Code generation Compiled: tight feedback loop Code

    is standardised: better for training models Standard library: less moving parts Tooling: automate code quality checks
  4. Go for GenAI: Production Workloads Great performance Concurrency out-of-the-box (go

    func()) Tooling (go vet, trace, pprof, static analysis …) Rich ecosystem of AI frameworks
  5. Key Features Model support: Google, Ollama, OpenAI, … Building blocks:

    structured output, tool calling, multi-modal input/output and more. Developer tools: CLI and developer UI Production monitoring: Firebase dashboard
  6. // Genkit: Define and Run a Flow g := genkit.Init(ctx,

    genkit.WithPlugins(&googlegenai.VertexAI{}) ) helloFlow := genkit.DefineFlow(g, "helloFlow", func(ctx context.Context, prompt string) (string, error) { resp, _ := genkit.Generate(ctx, g, ai.WithModelName("vertexai/gemini-2.5-flash"), ai.WithPrompt(prompt)) return resp.Text(), nil }, ) result, _ := helloFlow.Run(ctx, "Say hello!") fmt.Println(result)
  7. // Genkit: Define a Flow Server g := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.VertexAI{})

    ) genkit.DefineFlow(g, "helloFlow", func(ctx context.Context, prompt string) (string, error) { resp, _ := genkit.Generate(ctx, g, ai.WithModelName("vertexai/gemini-2.5-flash"), ai.WithPrompt(prompt)) return resp.Text(), nil }, ) // Keep running to serve the flow <-ctx.Done()
  8. Agent Development Kit (ADK) for Go An open-source toolkit for

    building, evaluating, and deploying AI agents Bletchley Park
  9. Key Features Model agnostic, deployment agnostic Agentic workflows: sequential, parallel,

    loop, … Pre-built (search, code exec) and custom tools Built-in evaluation
  10. // ADK: Create and Launch an Agent model, _ :=

    gemini.NewModel(ctx, "gemini-2.5-flash", &genai.ClientConfig{Backend: genai.BackendVertexAI}) agent, _ := llmagent.New(llmagent.Config{ Name: "hello_agent", Model: model, Instruction: "You are a helpful assistant.", }) full.NewLauncher().Execute(ctx, &adk.Config{ AgentLoader: services.NewSingleAgentLoader(agent), }, []string{"console"})
  11. Model Context Protocol (MCP) is an open standard that allows

    AI models to connect and communicate with external tools and data sources Bletchley Park Go SDK for MCP
  12. Shameless plug… Session: Hello, MCP World! @ 12:20 PM Lab:

    Build an MCP with Gemini CLI and Go @ 3:45 PM