이 API 없이도 대시보드에서 대부분의 도구 요구 사항을 처리할 수 있습니다. 연결
→ 앱에서는 몇 번의 OAuth 클릭으로 Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets 및 Cal.com을 연결할 수 있습니다. 연결 →
API에서는 모든 HTTP API를 에이전트 작업으로 전환할 수 있습니다(cURL 명령을
붙여넣으면 AI 마법사가 내장된 요청 테스트와 함께 도구 초안을 생성합니다). 연결 → MCP에서는 MCP 서버를 추가할 수 있습니다.
연결을 참조하세요. 이 가이드는 API 화면 아래에 있는 원시
API를 다룹니다.
도구의 구성 요소
두 가지 구성 요소가 있습니다.- 스키마 — 도구의 기능과 인수로 받는 값을 LLM에 알려 주는 OpenAI 스타일 함수 정의
(
{type: "function", function: {name, description, parameters}})입니다. - 엔드포인트 — LLM이 도구 사용을 결정했을 때 ThunderPhone 서버가 호출하는 URL입니다. 요청은 LLM이 선택한 인수를 본문으로 포함하는 JSON POST 요청입니다.
1. 저장 전략 선택
에이전트에 인라인으로 추가
일회성 도구를 에이전트의
tools 배열에 연결합니다. 간단하지만
재사용할 수 없습니다.저장된 통합
도구를 재사용 가능한 통합으로
저장하고 여러 에이전트에서 연결합니다. 두 번 이상 사용하는 모든 항목에
권장됩니다.
2. 통합 생성
id(UUID)를 저장합니다.
3. 샌드박스에서 엔드포인트 테스트
통합을 에이전트에 연결하기 전에 ThunderPhone 서버에서 서명된 요청을 보내 연결을 확인합니다.Response
400 code=url_not_allowed를 반환합니다.
4. 통합을 에이전트에 연결
에이전트를 생성하거나 업데이트할 때integration_ids를 통해 연결합니다.
get_weather를 사용합니다.” 또는 스키마 설명을 통해 암시적으로 탐색하도록 할 수 있습니다.
5. 엔드포인트 구현
에이전트가 도구를 호출하면 ThunderPhone이endpoint_url로 서명된 POST 요청을 전송합니다.
6. 루프 테스트
에이전트를 대상으로 마이크 세션을 실행하고 도구가 처리하는 질문을 합니다(“94110의 날씨는 어떤가요?”). 통화 기록에는 전체 왕복 과정이 표시됩니다.GET /v1/calls/{call_id}/transcript에서 가져올 수 있으며, 항목별 타이밍과 오디오 오프셋을 포함한 원시 이벤트 스트림은 GET /v1/calls/{call_id}/history에서 확인할 수 있습니다.
일반적인 주의 사항
에이전트가 도구를 호출하지 않음
에이전트가 도구를 호출하지 않음
LLM은 도구 설명을 기준으로 결정합니다. 발신자의 질문이 설명과 일치하지 않으면 모델은 도구를 호출하지 않습니다. 설명을 더 구체적으로 작성하거나(일반적인 동의어와 표현 추가) 에이전트 프롬프트에 명시적으로 언급합니다(“발신자가 날씨를 물어보면
get_weather를 사용합니다.”).도구가 너무 많은 데이터를 반환함
도구가 너무 많은 데이터를 반환함
6kB를 초과하는 응답은 기록 미리보기에서 잘립니다. 전체 행이 아니라 LLM에 필요한 필드만 반환합니다.
시간 초과
시간 초과
도구 엔드포인트의 기본 시간 초과는 10초입니다. 더 긴 시간이 필요하면 비동기적으로 처리합니다.
{"status": "pending", "request_id": "..."}를 반환하고 별도의 도구 호출을 통해 결과를 표시합니다.버전 관리
버전 관리
모든 통합
PATCH는 새 리비전을 생성합니다. GET /v1/integrations/{id}/versions를 검사하여 누가 무엇을 변경했는지 확인합니다. 도구의 스키마를 손상한 경우 이전 스냅샷을 다시 PATCH하여 수동으로 롤백할 수 있습니다.다음 단계
통합 레퍼런스
CRUD, 전환, 버전 기록.
Function Tools 사양
전체 JSON 스키마 문법 및 서명된 엔드포인트 계약.
서명 검증
도구 엔드포인트에 웹훅 서명 패턴을 적용합니다.
트랜스크립트 + 기록 API
도구 호출의 전체 왕복 과정을 검사합니다.