Mohanp76's picture
Deploy project
5545e4d
Raw
History Blame Contribute Delete
1.56 kB
import asyncio
import os
from dotenv import load_dotenv
from huggingface_hub import Agent
# 1. Load the HF_TOKEN from your .env file
load_dotenv()
async def run_agent():
hf_token = os.getenv("HF_TOKEN")
if not hf_token:
print("❌ Error: HF_TOKEN not found in .env")
return
# 2. Configuration for the MCP Server
# Note: Use 'http' and the base '/mcp' endpoint for the global HF server
mcp_servers = [{
"type": "http",
"url": "https://huggingface.co/mcp",
"headers": {"Authorization": f"Bearer {hf_token}"}
}]
print("Agent is ready. Thinking...")
try:
# 3. Use 'async with' to manage the lifecycle and prevent UserWarnings
async with Agent(
model="Qwen/Qwen2.5-7B-Instruct",
api_key=hf_token,
servers=mcp_servers
) as agent:
prompt = "Search the Hub for the top 3 trending text-to-video models and give me their names."
# 4. Consume the stream fully
async for chunk in agent.run(prompt):
# The agent yields 'AgentMessage' objects.
# We want the content specifically.
if hasattr(chunk, 'content') and chunk.content:
print(chunk.content, end="", flush=True)
print("\n\n✅ Task completed.")
except Exception as e:
print(f"\n❌ Execution failed: {e}")
if __name__ == "__main__":
# Standard entry point for async scripts
asyncio.run(run_agent())