SwarmZero 통합
SwarmZero 통합 (SwarmZero)
SwarmZero로 강력한 웹 검색 에이전트를 만들고, AgentOps로 그 동작을 모니터링하는 방법을 안내하는 문서예요. AgentOps는 Python SDK를 통해 SwarmZero를 일급(first-party) 지원해요.
출처: 문서
본문
AgentOps는 SwarmZero를 Python SDK를 통해 일급(first party) 지원해요. SwarmZero로 개발하는 방법은 문서를 참고하세요.
SwarmZero와 AgentOps 통합 단계
1. SwarmZero 설치하기
pip install swarmzero
poetry add swarmzero
2. AgentOps SDK 설치하기
pip install agentops
poetry add agentops
3. 추가 의존성 설치하기
pip install python-dotenv tavily-python
poetry add python-dotenv tavily-python
4. 코드에 AgentOps 추가하기
어떤
openai,cohere,crew등의 모델을 호출하기 전에agentops.init을 먼저 호출해 주세요.
import os
import agentops
from dotenv import load_dotenv
from swarmzero import Agent
from tavily import TavilyClient
# 환경 변수 로드
load_dotenv()
# 클라이언트 초기화
agentops.init(os.getenv("AGENTOPS_API_KEY"))
tavily_client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))
# SwarmZero 에이전트 코드 작성...
API 키는 .env 변수로 설정해 두면 편하게 쓸 수 있어요.
AGENTOPS_API_KEY=<YOUR API KEY>
TAVILY_API_KEY=<YOUR API KEY>
OPENAI_API_KEY=<YOUR API KEY>
환경 변수에 대한 더 자세한 내용은 Advanced Configuration 문서를 참고하세요.
5. 에이전트 실행하기
프로그램을 실행하고 app.agentops.ai/drilldown에 접속해서 에이전트를 관찰해 보세요! 🕵️
실행을 마치면 AgentOps가 콘솔에 대시보드의 세션으로 바로 연결되는 클릭 가능한 URL을 출력해 줘요.
전체 예제 (Full Example)
import os
import agentops
from dotenv import load_dotenv
from swarmzero import Agent
from tavily import TavilyClient
load_dotenv()
agentops.init(os.getenv("AGENTOPS_API_KEY"))
tavily_client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))
async def web_search(query: str) -> dict:
response = tavily_client.search(query)
results = []
for result in response["results"][:3]:
results.append({"title": result["title"], "url": result["url"], "content": result["content"]})
return results
async def extract_from_urls(urls: list[str]) -> dict:
response = tavily_client.extract(urls=urls)
if response["failed_results"]:
print(f"Failed to extract from {response['failed_results']}")
results = []
for result in response["results"]:
results.append({"url": result["url"], "raw_content": result["raw_content"]})
return results
my_agent = Agent(
name="workflow-assistant",
functions=[
web_search,
extract_from_urls,
],
config_path="./swarmzero_config.toml", # see https://github.com/swarmzero/swarmzero/blob/main/swarmzero_config_example.toml
instruction="You are a helpful assistant that can search the web and extract information from a given URL.",
# chat_only_mode=True # remove comment only if using `my_agent.chat()`
)
my_agent.run() # see agent API at localhost:8000/docs
"""
# chat directly without starting the agent's server
import asyncio
response = asyncio.run(my_agent.chat(prompt="what is Decentralized-AI about about?"))
print(response)
"""
에이전트 사용하기 (Using the Agent)
에이전트가 실행되면 HTTP 요청으로 에이전트와 상호작용할 수 있어요:
curl -X 'POST' \
'http://localhost:8000/api/v1/chat' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'user_id=test_user' \
-F 'session_id=test_web_search_agent' \
-F 'chat_data={"messages":[{"role":"user","content":"what is Decentralized-AI about about?"}]}'
이 예제는 노트북에서 확인할 수 있어요. 이 예제의 전체 코드는 저장소에서 확인할 수 있어요.