SDK 레퍼런스
SDK 레퍼런스 (SDK Reference)
SDK의 최상위 계층에서 노출되는 모든 함수와 클래스를 소개해요. 핵심 함수, 트레이스 관리, 상세 계측용 데코레이터, 그리고 레거시 함수까지 알아볼게요.
출처: 문서
본문
SDK 레퍼런스
이 레퍼런스는 Python SDK의 import agentops로 사용 가능한 함수와 클래스를 문서화합니다. AgentOps SDK는 에이전트 애플리케이션에 쉽게 통합되도록 설계되었으며, 간단한 자동 계측과 더 상세한 수동 트레이싱 기능을 모두 제공합니다.
핵심 함수 (Core Functions)
이것들은 애플리케이션에서 AgentOps를 초기화하고 구성하는 데 사용하는 주요 함수입니다.
init()
AgentOps SDK를 초기화하고 애플리케이션 추적을 자동으로 시작합니다.
파라미터:
api_key(str, 선택): AgentOps 서비스를 위한 API 키. 제공하지 않으면AGENTOPS_API_KEY환경 변수에서 읽습니다.endpoint(str, 선택): AgentOps 서비스의 엔드포인트. 제공하지 않으면AGENTOPS_API_ENDPOINT환경 변수에서 읽습니다. 기본값은 'https://api.agentops.ai'입니다.app_url(str, 선택): AgentOps 앱의 대시보드 URL. 제공하지 않으면AGENTOPS_APP_URL환경 변수에서 읽습니다. 기본값은 'https://app.agentops.ai'입니다.max_wait_time(int, 선택): 큐를 flush 하기 전 최대 대기 시간(밀리초). 기본값은 5,000 (5초)입니다.max_queue_size(int, 선택): 이벤트 큐의 최대 크기. 기본값은 512입니다.default_tags(List[str], 선택): 나중에 그룹화나 정렬에 사용할 수 있는 세션의 기본 태그 (예: ["GPT-4"]).tags(List[str], 선택): [Deprecated]default_tags를 대신 사용하세요. v4.0에서 제거될 예정입니다.instrument_llm_calls(bool, 선택): LLM 호출을 자동으로 계측할지 여부. 기본값은 True입니다.auto_start_session(bool, 선택): 클라이언트 생성 시 세션을 자동으로 시작할지 여부. Jupyter Notebook에서 실행 중이면 False로 설정하세요. 기본값은 True입니다.auto_init(bool, 선택): import 시 클라이언트를 자동으로 초기화할지 여부. 기본값은 True입니다.skip_auto_end_session(bool, 선택): 여러분의 프레임워크 의사결정에 따라 세션을 자동으로 종료하지 않기. 기본값은 False입니다.env_data_opt_out(bool, 선택): 환경 데이터 수집을 거부할지 여부. 기본값은 False입니다.log_level(str, int, 선택): 클라이언트에 사용할 로그 레벨. 기본값은 'INFO'입니다.fail_safe(bool, 선택): 가능할 때 오류를 억제하고 실행을 계속할지 여부. 기본값은 False입니다.exporter_endpoint(str, 선택): exporter의 엔드포인트. 제공하지 않으면AGENTOPS_EXPORTER_ENDPOINT환경 변수에서 읽습니다. 기본값은 'https://otlp.agentops.ai/v1/traces'입니다.export_flush_interval(int, 선택): 텔레메트리 데이터 자동 내보내기 사이의 시간 간격(밀리초). 기본값은 1000입니다.trace_name(str, 선택): 자동으로 생성된 트레이스의 커스텀 이름. 제공하지 않으면 기본 이름이 사용됩니다.
반환:
auto_start_session=True이면 생성된 Session 객체를 반환합니다. 그렇지 않으면 None을 반환합니다.
예제:
import agentops
# Basic initialization with automatic session creation
agentops.init("your-api-key")
# Initialize with custom trace name
agentops.init("your-api-key", trace_name="my-workflow")
configure()
초기화 후 클라이언트 구성을 업데이트합니다. init()과 동일한 파라미터를 지원합니다.
파라미터:
api_key(str, 선택): AgentOps 서비스를 위한 API 키.endpoint(str, 선택): AgentOps 서비스의 엔드포인트.app_url(str, 선택): AgentOps 앱의 대시보드 URL.max_wait_time(int, 선택): 큐를 flush 하기 전 최대 대기 시간(밀리초).max_queue_size(int, 선택): 이벤트 큐의 최대 크기.default_tags(List[str], 선택): 세션의 기본 태그.instrument_llm_calls(bool, 선택): LLM 호출을 계측할지 여부.auto_start_session(bool, 선택): 세션을 자동으로 시작할지 여부.auto_init(bool, 선택): import 시 클라이언트를 자동으로 초기화할지 여부.skip_auto_end_session(bool, 선택): 세션을 자동으로 종료하지 않기.env_data_opt_out(bool, 선택): 환경 데이터 수집을 거부할지 여부.log_level(str, int, 선택): 클라이언트에 사용할 로그 레벨.fail_safe(bool, 선택): 오류를 억제하고 실행을 계속할지 여부.exporter(object, 선택): OpenTelemetry 트레이스 데이터용 커스텀 스팬 exporter.processor(object, 선택): OpenTelemetry 트레이스 데이터용 커스텀 스팬 프로세서.exporter_endpoint(str, 선택): exporter의 엔드포인트.export_flush_interval(int, 선택): 텔레메트리 데이터 자동 내보내기 사이의 시간 간격(밀리초).trace_name(str, 선택): 트레이스의 커스텀 이름.
예제:
import agentops
# Initialize first
agentops.init()
# Later, update configuration
agentops.configure(
max_wait_time=10000,
max_queue_size=200,
default_tags=["production", "gpt-4"],
trace_name="production-workflow"
)
get_client()
싱글턴 클라이언트 인스턴스를 가져옵니다. 대부분의 사용자는 이 함수를 직접 사용할 필요가 없습니다.
반환:
- AgentOps 클라이언트 인스턴스.
트레이스 관리 (Trace Management)
이 함수들은 트레이스 추적의 수명주기를 관리하는 데 도움을 줍니다.
start_trace()
새 AgentOps 트레이스를 수동으로 시작합니다. 자동 세션 생성을 비활성화했거나 여러 개의 별도 트레이스가 필요할 때 유용합니다.
파라미터:
trace_name(str, 선택): 트레이스의 이름. 제공하지 않으면 기본 이름이 사용됩니다.tags(Union[Dict[str, Any], List[str]], 선택): 트레이스에 붙일 선택적 태그로, 대시보드에서 필터링에 유용합니다. 문자열 리스트 또는 키-값 쌍의 dict일 수 있습니다.
반환:
- 시작된 트레이스를 나타내는 TraceContext 객체.
예제:
import agentops
# Initialize without auto-starting a session
agentops.init("your-api-key", auto_start_session=False)
# Start a trace manually
trace = agentops.start_trace("customer-service-workflow", tags=["customer-query"])
end_trace()
특정 트레이스 또는 모든 활성 트레이스를 종료합니다.
파라미터:
trace(TraceContext, 선택): 종료할 특정 트레이스. 제공하지 않으면 모든 활성 트레이스가 종료됩니다.end_state(str, 선택): 트레이스의 종료 상태. 애플리케이션에 의미 있는 어떤 설명 문자열이든 사용할 수 있어요 (예: "Success", "Indeterminate", "Error", "Timeout" 등).
예제:
import agentops
# End a specific trace
trace = agentops.start_trace("my-workflow")
# ... your code ...
agentops.end_trace(trace, "Success")
# End all active traces
agentops.end_trace(end_state="Emergency_Shutdown")
update_trace_metadata()
현재 실행 중인 트레이스의 메타데이터를 업데이트합니다. 트레이스 실행 중 컨텍스트를 추가하거나, 진행률을 추적하거나, 중간 결과를 저장하는 데 유용합니다.
파라미터:
metadata(Dict[str, Any]): 트레이스 메타데이터로 설정할 키-값 쌍의 딕셔너리. 값은 문자열, 숫자, 불리언 또는 이러한 유형의 리스트여야 합니다. 리스트는 자동으로 JSON 문자열 표현으로 변환됩니다.prefix(str, 선택): 메타데이터 속성의 프리픽스. 기본값은 "trace.metadata"입니다. 시맨틱 컨벤션 속성에는 무시됩니다.
반환:
bool: 메타데이터가 성공적으로 업데이트되었으면 True, 그렇지 않으면 False.
기능:
- 시맨틱 컨벤션 지원: "tags", "agent_name", "workflow_name" 같은 사용자 친화적인 키가 OpenTelemetry 시맨틱 컨벤션으로 자동 매핑됩니다.
- 커스텀 속성: 시맨틱이 아닌 키는 지정된 프리픽스(기본: "trace.metadata")로 접두사가 붙습니다.
- 타입 안전성: 입력 타입을 검증하고 OpenTelemetry 호환을 위해 리스트를 JSON 문자열로 변환합니다.
- 오류 처리: 불리언 성공 지표를 반환하고 잘못된 데이터에 대한 경고를 로그합니다.
예제:
import agentops
from agentops import update_trace_metadata
# Initialize and start trace with initial tags
agentops.init(auto_start_session=False)
trace = agentops.start_trace("ai-workflow", tags=["startup", "initialization"])
# Your code here...
# Update metadata mid-run with new tags and operation info
update_trace_metadata({
"operation_name": "OpenAI GPT-4o-mini",
"tags": ["ai-agent", "processing", "gpt-4"], # Updates tags
"status": "processing"
})
# End the trace
agentops.end_trace(trace, "Success")
자세한 예제와 사용 사례는 수동 트레이스 제어를 참조하세요.
상세 계측용 데코레이터 (Decorators for Detailed Instrumentation)
더 세밀한 제어를 위해 AgentOps는 애플리케이션의 서로 다른 컴포넌트를 명시적으로 추적하는 데코레이터를 제공합니다. @trace 데코레이터는 커스텀 트레이스를 만드는 권장 방법이며, 특히 멀티스레드 환경에서 그렇습니다. 이 데코레이터들은 agentops.sdk.decorators에서 import 됩니다.
import agentops
from agentops.sdk.decorators import trace, agent, operation, tool
# Initialize without automatic session creation
agentops.init("your-api-key", auto_start_session=False)
# Create and run a trace using the decorator
@trace
def my_workflow():
# Your workflow code here
pass
# Run the workflow, which creates and manages the trace
my_workflow()
사용 가능한 데코레이터 (Available Decorators)
@trace: 관련 작업을 그룹화하기 위한 트레이스 스팬 생성@agent: 에이전트 작업을 추적하기 위한 에이전트 스팬 생성@operation/@task: 특정 작업을 추적하기 위한 운영/태스크 스팬 생성 (이 둘은 별칭)@workflow: 관련 작업을 조직화하기 위한 워크플로우 스팬 생성@tool: 에이전트 작업에서 도구 사용과 비용을 추적하기 위한 도구 스팬 생성. 도구 사용 비용 추적을 위한 cost 파라미터를 지원합니다.
도구 데코레이터 예제:
from agentops.sdk.decorators import tool
@tool(cost=0.05)
def web_search(query):
# Tool implementation with cost tracking
return f"Search results for: {query}"
@tool
def calculator(expression):
# Tool without cost tracking
return eval(expression)
이 데코레이터 사용에 대한 더 자세한 문서는 데코레이터를 참조하세요.
레거시 함수 (Legacy Functions)
start_session(): Deprecated. 세션 시작을 위한 레거시 함수. 대신@trace데코레이터 또는start_trace()를 사용하세요.end_session(): Deprecated. 세션 종료를 위한 레거시 함수. 대신end_trace()를 사용하세요.record(event): Deprecated. 이벤트를 기록하는 레거시 함수. 데코레이터 기반 트레이싱으로 대체되었습니다.track_agent(): Deprecated. 에이전트를 표시하는 레거시 데코레이터.@agent데코레이터로 대체되었습니다.track_tool(): Deprecated. 도구를 표시하는 레거시 데코레이터.@tool데코레이터로 대체되었습니다.ToolEvent(),ErrorEvent(),ActionEvent(),LLMEvent(): Deprecated. 레거시 이벤트 타입. 자동 계측과 데코레이터로 대체되었습니다.