Overview

What you’ll build:

A simple LangChain-powered AI Agent that uses OpenAI’s language models and a custom tool, with all agent activities logged and monitored in Galileo.

What you’ll learn:

  • How to configure a LangChain Agent
  • How to integrate Galileo for observability and monitoring
  • How to structure tools and environment for scalable development
👀 Check out the full SDK Examples repository on GitHub, or watch the video walkthrough in tandem.

Requirements

  • Python package manager + some familiarity with Python (for the sake of this cookbook, we’ll use uv)
  • A Galileo Developer Account. If you don’t have one, [sign up for free]](https://app.galileo.ai).
  • OpenAI Key to assist get one here

Environment setup

Ingredients:

  • git
  • Python environment tools
  • Package manager (pip or uv)

Steps:

  1. Clone the repository:
    git clone https://github.com/rungalileo/sdk-examples.git
    cd sdk-examples/python/agent/langchain-agent
    
  2. Create a virtual environment: on Windows
    python -m venv venv
    venv\Scripts\activate
    
    on Mac Using a standard virtual environment
    python -m venv venv
    source venv/bin/activate
    
    Or using uv (faster)
    uv venv venv
    source venv/bin/activate
    
  3. Install dependencies: Using pip
    pip install -r requirements.txt
    
    OR using uv
    uv pip install -r requirements.txt
    
  4. Set up your environment variables: Copy the existing .env.example file, and rename it to .env in your project directory. Set your Galileo and OpenAI environment variables:
    .env
    # Galileo Environment Variables
    
    # Your Galileo API key
    GALILEO_API_KEY=your-galileo-api-key
    
    # Your Galileo project name
    GALILEO_PROJECT="your-galileo-project-name"
    
    # The name of the log stream you want to use for logging
    GALILEO_LOG_STREAM="your-galileo-log-stream"
    
    # Provide the console url below if you are using a
    # custom deployment, and not using the free tier, or app.galileo.ai.
    # This will look something like “console.galileo.yourcompany.com”.
    # GALILEO_CONSOLE_URL="your-galileo-console-url"
    
    # OpenAI properties
    OPENAI_API_KEY="your-openai-api-key"
    
    # Optional. The base URL of your OpenAI deployment. 
    # Leave this commented out if you are using the default OpenAI API.
    # OPENAI_BASE_URL="your-openai-base-url-here"
    
    # Optional. Your OpenAI organization.
    # OPENAI_ORGANIZATION="your-openai-organization-here" 
    
    • Replace the values with your actual keys. This keeps your credentials secure and out of your code.

Understanding the agent architecture

🧠 Agent core (main.py)

A single script defines:
  • Loading of secrets
  • Tool declaration
  • Agent instantiation
  • Galileo observability

🛠️ Tools

Simple @tool functions that the agent can call, such as:
@tool
def greet(name: str) -> str:
    """Say hello to someone."""
    return f"Hello, {name}! 👋"

🔍 Instrumentation (galileo_context + GalileoCallback)

The galileo_context tags all logs under a project and stream. The GalileoCallback automatically traces agent behavior in Galileo.

Main agent workflow

Key ingredients:

  • LangChain agent
  • OpenAI model
  • Galileo integration

How it works:

  1. Load .env variables.
  2. Declare tools.
  3. Wrap agent execution in galileo_context.
  4. Use GalileoCallback to trace the run.
  5. Print the agent’s response.

Running the agent

Run your script using:
python main.py

Expected output:

Agent Response:
Hello, Erin! 👋

Viewing traces in Galileo

Steps:

  1. Log into Galileo.
  2. Open the langchain-docs project and my_log_stream.
  3. Inspect:
    • Prompts
    • Reasoning steps
    • Tool invocations
    • Outputs

Extending the agent

Add new tools

Define more @tool-decorated functions and include them in the agent.

Change models

Swap out gpt-4 for another supported OpenAI model in ChatOpenAI.

Update context

Change the project and log_stream in galileo_context for better trace organization.

Conclusion

Key takeaways:

  • LangChain + Galileo makes AI agents traceable and observable
  • Using tools and context managers helps modularize and organize agent behavior
  • Monitoring enables better debugging and optimization

Next steps:

Happy building! 🚀

Common issues and solutions

API key issues

Problem: “Invalid API key” errors Solution:
  • Double-check your .env file

Galileo connection issues

Problem: Traces aren’t showing up in Galileo Solution:
  • Confirm your API key is valid
  • Check internet connectivity
  • Ensure flush() is being called at the end of execution