Skip to content

What is Gola?

Gola lets you build AI agents with YAML, not code. Write a config file, define your prompts, connect some tools, and you've got an agent. Everything ships as a single binary—no Python environments, no npm installs.

Core Concepts

AI Agent Platform

Your agent is defined by a YAML file that controls:

  • Agent behavior - How it thinks, what it remembers, how it handles errors
  • LLM integration - Which model to use and how to talk to it
  • Prompt engineering - Build complex prompts from reusable pieces
  • Tool integration - Give it access to files, APIs, databases—anything that speaks MCP
  • Knowledge bases - Feed it documents with RAG (if you need that)

Terminal Interface

Gola comes with a built-in terminal UI that actually works:

  • Session management - Pick up conversations where you left off
  • Slash commands - /model to switch models mid-conversation, /copy to grab code blocks
  • Code block editing - Append or replace code without copy-pasting
  • Editor integration - Hooks into Neovim, or just use the clipboard
  • Looks good - Syntax highlighting that doesn't hurt your eyes

MCP Integration

MCP (Model Context Protocol) is how your agent talks to the outside world:

  • External tools - Git, files, web search, databases—if it has an MCP server, you can use it
  • Service orchestration - Your agent can use multiple tools in one workflow
  • Runtime management - Gola downloads Python/Node/Bun automatically if needed
  • Security - Control what tools can do with authorization rules

Architecture

Key Features

Configuration Over Code

No programming required. Just write YAML:

yaml
agent:
  name: "Development Assistant"
  max_steps: 10
  behavior:
    memory:
      eviction-strategy: summarize
      max-history-steps: 1000
    continue_on_error: true

llm:
  provider: openai
  model: "gpt-4o"
  auth:
    api_key_env: "OPENAI_API_KEY"

Rich Prompt System

Build prompts like you build software—modular and reusable:

yaml
prompts:
  fragments:
    coding_rules: "prompts/fragments/coding_rules.md"
    project_context: "prompts/fragments/project_context.md"
  roles:
    system:
      - file: "prompts/system/main.md"
      - fragment: "coding_rules"
      - fragment: "project_context"

Tool Integration

Hook up any MCP server with a few lines:

yaml
mcp_servers:
  - name: "git"
    command:
      command: "uvx"
      args: ["mcp-server-git"]
  - name: "filesystem"
    command:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]

State Management

For complex workflows, track state in JSON:

yaml
# Example from Sherpa travel agent
{
  "session_id": "456",
  "status": "departing_flight_search_required",
  "origin": "SFO",
  "destination": "CDG", 
  "departure_date": "2025-03-10",
  "travelers": {"adults": 1}
}

Getting Started

Want to try it? See the Getting Started guide.