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

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
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
- 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.
- Clone the repo and install packages
git clone https://github.com/civerson/smolagents-gaia-final.git pip install -r requirements.txt
- Enter your API keys in a
.env
or set them as followsOPENROUTER_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'
- Run the app
python app.py
- 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
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference