SDK로 빌드하기
SDK로 빌드하기
Hugging Face 에이전트 SDK로 MCP 기반 에이전트를 빌드해요. huggingface_hub(Python)와 @huggingface/tiny-agents(JavaScript) 라이브러리는 LLM을 MCP 도구에 연결하는데 필요한 모든 것을 제공해요.
출처: 문서
본문
설치
pip install "huggingface_hub[mcp]"
npm install @huggingface/tiny-agents
# or
pnpm add @huggingface/tiny-agents
빠른 시작: 에이전트 실행
가장 빠른 시작 방법은 tiny-agents CLI예요:
tiny-agents run julien-c/flux-schnell-generator
npx @huggingface/tiny-agents run "julien-c/flux-schnell-generator"
이것은 tiny-agents 컬렉션에서 에이전트를 불러와 MCP 서버에 연결하고 대화형 채팅을 시작해요.
Agent 클래스 사용하기
Agent 클래스는 채팅 루프와 MCP 도구 실행을 관리해요. LLM 실행에는 Inference Providers를 사용해요.
from huggingface_hub import Agent
import asyncio
agent = Agent(
model="Qwen/Qwen2.5-72B-Instruct",
provider="novita",
servers=[
{
"type": "sse",
"url": "https://evalstate-flux1-schnell.hf.space/gradio_api/mcp/sse"
}
]
)
async def main():
async for chunk in agent.run("Generate an image of a sunset"):
if hasattr(chunk, 'choices'):
delta = chunk.choices[0].delta
if delta.content:
print(delta.content, end="")
asyncio.run(main())
모든 옵션은 Agent 레퍼런스를 참고하세요.
import { Agent } from "@huggingface/tiny-agents";
const agent = new Agent({
model: "Qwen/Qwen2.5-72B-Instruct",
provider: "novita",
apiKey: proces...KEN,
servers: [
{
type: "sse",
url: "https://evalstate-flux1-schnell.hf.space/gradio_api/mcp/sse"
}
]
});
await agent.loadTools();
for await (const chunk of agent.run("Generate an image of a sunset")) {
if ("choices" in chunk) {
const delta = chunk.choices[0]?.delta;
if (delta.content) {
console.log(delta.content);
}
}
}
모든 옵션은 tiny-agents 문서를 참고하세요.
MCPClient 직접 사용하기
더 많은 제어가 필요하면 MCPClient로 MCP 서버와 도구 호출을 직접 관리하세요.
import asyncio
from huggingface_hub import MCPClient
async def main():
async with MCPClient(
model="Qwen/Qwen2.5-72B-Instruct",
provider="novita",
) as client:
# Connect to an MCP server
await client.add_mcp_server(
type="sse",
url="https://evalstate-flux1-schnell.hf.space/gradio_api/mcp/sse"
)
# Process a request with tools
messages = [{"role": "user", "content": "Generate an image of a sunset"}]
async for chunk in client.process_single_turn_with_tools(messages):
if hasattr(chunk, 'choices'):
delta = chunk.choices[0].delta
if delta.content:
print(delta.content, end="")
asyncio.run(main())
모든 옵션은 MCPClient 레퍼런스를 참고하세요.
JavaScript SDK는 MCP 상호작용에 Agent 클래스를 사용해요. 더 낮은 수준의 제어는 @huggingface/mcp-client 패키지를 참고하세요.
에이전트 공유하기
Hub의 tiny-agents 컬렉션에 에이전트를 기여하세요. 다음을 포함하세요:
agent.json- 에이전트 구성 (필수)PROMPT.md또는AGENTS.md- 시스템 프롬프트 (선택)EXAMPLES.md- 샘플 프롬프트와 사용 사례 (선택)
더 알아보기 (Learn more)
- huggingface_hub MCP 레퍼런스 - Python API 레퍼런스
- tiny-agents 문서 - JavaScript API 레퍼런스
- Inference Providers - 사용 가능한 LLM 프로바이더
- MCP 서버 가이드 - Hugging Face MCP 서버에 연결