import requests
from llama_index.core.tools import FunctionTool
from llama_index.agent.openai import OpenAIAgent
X711_KEY = " x711_your_key_here "
def _x ( tool : str , ** kwargs ) -> dict :
return requests . post (
" https://x711.io/api/refuel ",
headers = { " X-API-Key " : X711_KEY },
json = { " tool " : tool , ** kwargs },
timeout = 15 ,
). json ()
def web_search ( query : str ) -> str :
""" 실시간 웹을 검색합니다. 최근 이벤트, 뉴스, 현재 데이터에 사용하세요. """
return str ( _x ( " web_search " , query = query ))
def price_feed ( assets : list ) -> str :
""" 실시간 암호화폐/주식 가격. assets=[' ETH ' , ' BTC ' , ' SOL ' ]. 항상 무료입니다. """
return str ( _x ( " price_feed " , assets = assets ))
def hive_read ( namespace : str , query : str ) -> str :
""" 집단 에이전트 지식을 읽습니다. DeFi, 온체인, 에이전트 네이티브 주제에 가장 적합합니다. """
return str ( _x ( " hive_read " , namespace = namespace , query = query ))
def tx_simulate ( chain : str , from_addr : str , to : str , data : str ) -> str :
""" 트랜잭션을 드라이 런 (Dry-run) 합니다. chain: base|eth|arb|op|polygon """
return str ( _x ( " tx_simulate " , chain = chain , ** { " from " : from_addr }, to = to , data = data ))
tools = [
FunctionTool . from_defaults ( fn = web_search ),
FunctionTool . from_defaults ( fn = price_feed ),
FunctionTool . from_defaults ( fn = hive_read ),
FunctionTool . from_defaults ( fn = tx_simulate ),
]
agent = OpenAIAgent . from_tools ( tools , verbose = True )
response = agent . chat ( " What is the current ETH price and recent Base chain news? " )