My experience and feedback on Hugging Face (smolagent) Agent Course (so far)

Alain Airom - Feb 27 - - Dev Community

A feedback on Hugging Face AI Agents course!

Introduction

Hugging Face since recently provides a really nice multi-level course on AI Agents. As their site mentions, the aim for the leaner is to build a solid foundation in the fundamentals of AI Agents.

This goes through the following agenda;

  • Understanding Agents
  • The Role of LLMs (Large Language Models) in Agents
  • Tools and Actions
  • The Agent Workflow

The course unit 1 “Introduction to Agents” is a very good introductory part and I think everybody wanting to learn in this field should follow it.

The unit 2, just accessible online is around “Frameworks for AI Agents”.

Each of the units come with a series of quiz and questions, at the end of unit 2, the student should provide code samples in order to show their understanding of the subject.

My experience with “Frameworks for AI Agents” exam

As this exam in not graded nor certifying I wanted to share my feedback and experience with this unit.

There are 5 code samples to be provided and the student should provide 80% of the exam to validate the unit (self validation, no glories, badges or whatsoever of the kind 😅). I had to do several attempts to achieve the 80% grade, and sometime over-providing of the code was unnecessary and unproductive ☠️!

The questions are the following.

Question 1: Create a Basic Code Agent with Web Search Capability

### sample provided
from smolagents import CodeAgent

agent = CodeAgent(
    tools=[],           # Add search tool here
    model=None          # Add model here
)
Enter fullscreen mode Exit fullscreen mode

My answer which worked fine;

from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel


agent = CodeAgent(
    tools=[DuckDuckGoSearchTool()],
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct")
)

# Execute a search query
response = agent.run("best music for a party")
print(response)
Enter fullscreen mode Exit fullscreen mode

Question 2: Set Up a Multi-Agent System with Manager and Web Search Agents

# sample provided
web_agent = ToolCallingAgent(
    tools=[],           # Add required tools
    model=None,         # Add model
    max_steps=5,        # Adjust steps
    name="",           # Add name
    description=""      # Add description
)

manager_agent = CodeAgent()
Enter fullscreen mode Exit fullscreen mode

My answer (OK)

from smolagents import CodeAgent, ToolCallingAgent, DuckDuckGoSearchTool, HfApiModel, VisitWebpageTool

web_agent = ToolCallingAgent(
    tools=[DuckDuckGoSearchTool(), VisitWebpageTool()], 
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),
    max_steps=10,
    name="search", 
    description="Agent to perform web searches and visit webpages."
)


manager_agent = CodeAgent(
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),
    managed_agents=[web_agent],
    additional_authorized_imports=["pandas", "time", "numpy"] # Corrected imports
)
Enter fullscreen mode Exit fullscreen mode

Question 3: Configure Agent Security Settings

# code sample example
from smolagents import CodeAgent

agent = CodeAgent(
    tools=[],
    model=model
    # Add security configuration
)

Enter fullscreen mode Exit fullscreen mode

My answer (KO! several attempts, does not pass… 🫣)

from smolagents import CodeAgent, ToolCallingAgent, DuckDuckGoSearchTool, HfApiModel


web_agent = ToolCallingAgent(
    tools=[DuckDuckGoSearchTool()],  
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),
    max_steps=10,  
    name="WebSearchAgent",
    description="Agent for web searches using DuckDuckGo."
)

manager_agent = CodeAgent(
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),
    managed_agents=[web_agent],  
    additional_authorized_imports=["pandas"]  

Enter fullscreen mode Exit fullscreen mode

Question 4: Implement a Tool-Calling Agent

# code provided as example
from smolagents import ToolCallingAgent



agent = ToolCallingAgent(

    # Add configuration here

)
Enter fullscreen mode Exit fullscreen mode

And what I provided (and was OK)👇

from smolagents import ToolCallingAgent, HfApiModel, DuckDuckGoSearchTool

agent = ToolCallingAgent(
    tools=[DuckDuckGoSearchTool()],  
    model=HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct"),  
    name="SearchAgent",  
    description="An agent that uses DuckDuckGo to search the web.",  
    max_steps=5,  
)
Enter fullscreen mode Exit fullscreen mode

Question 5: Set Up Model Integration

from smolagents import HfApiModel

model = # Add model configuration
Enter fullscreen mode Exit fullscreen mode

And my answer which passed!

from smolagents import HfApiModel, LiteLLMModel

hf_model = HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct")


litellm_model = LiteLLMModel(model_id="anthropic/claude-3-sonnet")  


model = hf_model  
Enter fullscreen mode Exit fullscreen mode

Conclusion

I recommend absolutely this course for anyone who is kind-of newbie in AI Agents.

Thanks for reading 👍

Useful link

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .