도구 메타데이터 설정
도구 메타데이터 설정 (Set Tool Metadata)
SetToolMetadata는 선택한 도구에 메타데이터 키-값 쌍을 병합하는 캐퍼빌리티예요. 다른 캐퍼빌리티나 커스텀 로직이 검사할 수 있는 설정으로 도구를 태그하는 데 유용합니다.
출처: 문서
본문
from pydantic_ai import Agent
from pydantic_ai.capabilities import SetToolMetadata
from pydantic_ai.models.test import TestModel
test_model = TestModel()
agent = Agent(
test_model,
capabilities=[SetToolMetadata(tools=['search'], sensitive=True)],
)
@agent.tool_plain
def search(query: str) -> str:
"""Search for information."""
return f'Results for: {query}'
@agent.tool_plain
def greet(name: str) -> str:
"""Greet someone."""
return f'Hello, {name}!'
result = agent.run_sync('Search for pydantic')
params = test_model.last_model_request_parameters
assert params is not None
search_tool = next(t for t in params.function_tools if t.name == 'search')
greet_tool = next(t for t in params.function_tools if t.name == 'greet')
assert search_tool.metadata is not None and search_tool.metadata.get('sensitive') is True
assert greet_tool.metadata is None or greet_tool.metadata.get('sensitive') is None
(이 예제는 완전하며, "그대로" 실행할 수 있어요)
같은 효과를 툴셋(toolset) 수준에서 .with_metadata()로 얻을 수도 있어요 — 툴셋 구성을 참고하세요.