civerson916's picture
Update README.md
cc03081 verified
metadata
title: Final Assignment
emoji: 🕵🏻‍♂️
colorFrom: indigo
colorTo: indigo
sdk: gradio
sdk_version: 5.29.0
app_file: app.py
pinned: false
hf_oauth: true
hf_oauth_expiration_minutes: 480
license: mit

Hugging Face Agents Course

Agents Course Final Project

Final hands-on assignment for the Hugging Face Agents course. In this project I built a multi-agent solution, evaluated it against questions from the General AI Assistants (GAIA) benchmark (level one only), and got creative with some agent and tool improvements.

About The Project

Achieving 30 points for the certification was relatively easy with the template provided and a powerful enough LLM. However, evaluation revealed the unique types of implementation challenges with AI agents. Some of which include...

  • Cost
  • Reliability
  • Response Times

HF Space Screenshot

Langfuse Screenshot

Beyond what looks like a smolagents guided tour, you can find the following in this repo...

  • Research agent armed with Google search via Serper and both Audo and Video Understanding via Gemini
  • Chess agent leveraging my board_to_fen fork and a Stockfish API.
  • Langfuse setup boilerplate, a working example. This is an absolute must.
  • Pydantic settings for type safety, centralized, and encapsulated config.
  • Basic parallel agent task execution, compatible with smolagents and the Gradio UI.

Getting Started

To get a local copy up and running follow these steps.

Prerequisites

  • python
  • pip
  • git

Installation

  1. Get an API key for the following services: OpenRouter, Gemini, Serper, and Langfuse. The HF username and space are only used when submitting answers for evaluation, but must be present to startup. If you run this in your own HF space, these will already be set for you.
  2. Clone the repo and install packages
    git clone https://github.com/civerson/smolagents-gaia-final.git
    pip install -r requirements.txt
    
  3. Enter your API keys in a .env or set them as follows
    OPENROUTER_API_KEY = 'ENTER YOUR API'
    GEMINI_API_KEY = 'ENTER YOUR API'
    SERPER_API_KEY = 'ENTER YOUR API'
    LANGFUSE_PUBLIC_KEY = 'ENTER YOUR API'
    LANGFUSE_SECRET_KEY = 'ENTER YOUR API'
    USERNAME = 'ENTER YOUR HF USERNAME'
    SPACE_ID = 'ENTER YOUR HF SPACE'
    
  4. Run the app
    python app.py
    
  5. Change git remote url to avoid accidental pushes to base project
    git remote set-url origin github_username/repo_name
    git remote -v # confirm the changes
    

(back to top)

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference