대화형 작업은 Google 어시스턴트 사용자를 위한 맞춤 환경 또는 대화를 만들 수 있도록 하여 Google 어시스턴트의 기능을 확장합니다. 대화에서 대화형 작업은 어시스턴트의 요청을 처리하고 오디오 및 시각적 구성요소가 포함된 응답을 반환합니다. 대화형 작업은 응답을 반환하기 전에 추가 대화 또는 비즈니스 로직을 위해 웹훅을 사용하여 외부 웹 서비스와 통신할 수도 있습니다.
그림 1. 대화형 작업의 예
빌드해야 하는 이유
일반적인 컴퓨터 인터페이스는 제대로 작동하려면 구조화되고 예측 가능한 입력이 필요하므로 이러한 인터페이스를 사용하는 것이 부자연스럽고 때로는 어렵습니다. 사용자가 이 구조화된 입력을 쉽게 알아내지 못하면 무엇을 해야 할지 알기가 어렵습니다.
예를 들어 "오늘 일기 예보가 어때?"와 같은 간단한 사용자 요청을 생각해 보겠습니다. 다른 사용자는 "지금 날씨는 어때?" 또는 "내일 샌프란시스코 날씨는 어때?"라고 물을 수도 있습니다. 이 간단한 질문에도 불구하고 자연어를 해석하고 처리하려면 언어의 미묘한 차이를 이해할 수 있는 매우 강력한 언어 파서가 필요하므로 대화 환경을 구현하기가 어렵다는 것을 알 수 있습니다. 코드는 동일한 로직을 실행하기 위해 이러한 모든 유형의 요청(가능성 그 이상)을 처리해야 합니다. 즉, 시간과 위치에 대한 일기 예보 정보를 찾는 것입니다. 따라서 기존의 컴퓨터 인터페이스는 고도로 구조화된 입력을 처리하기 쉽기 때문에 사용자 환경을 저해하는 잘 알려진 표준 입력 요청을 필요로 합니다.
그러나 대화형 작업을 빌드하면 어시스턴트가 자연어 이해 (NLU)를 처리하므로 개발자는 개방형 대화형 인터페이스를 쉽게 빌드할 수 있습니다. 이러한 인터페이스 도구를 사용하면 인간 언어의 방대하고 다양한 미묘한 차이를 이해하고 이를 앱과 서비스가 이해할 수 있는 표준 및 구조화된 의미로 변환할 수 있습니다. 앞서 살펴본 일기 예보 요청 예시를 작업에서 어떻게 처리할 수 있는지 살펴보겠습니다.
그림 1. NLU 인텐트 매칭
일기 예보를 조회하려면 사용자가 예보를 원하는 시간 및 위치와 같은 몇 가지 정보가 필요할 수 있습니다. 그러나 앞서 언급했듯이 사용자마다 예측을 요청하는 방식이 다를 수 있습니다. 어시스턴트는 이러한 차이를 이해하고 예측을 가져오기 위한 표준 사용자 인텐트로 변환할 수 있습니다. 그런 다음 사용자의 요청을 파싱하여 요청을 처리하는 데 필요한 관련 데이터를 얻을 수 있습니다. 이 경우 사용자가 원하는 일기 예보 시간과 위치입니다. 마지막으로 이 데이터를 사용하여 공개 REST API로 날씨를 조회하고 프롬프트 형식으로 사용자에게 날씨를 반환할 수 있습니다.
빌드 시기
대화형 작업은 사용자가 작업을 빠르게 완료할 수 있는 간단한 사용 사례와 음성 전달 방식의 몰입형 사용 사례에 가장 적합합니다.
좋은 대화형 작업은 보통 다음과 같은 일반적인 카테고리로 분류됩니다.
사람들이 쉽게 답변할 수 있는 질문 항공편 예약과 같이 시간, 날짜 등 친숙한 입력으로 수행할 수 있는 작업
간단하지만 유용한 작업. 이렇게 하면 일반적으로 사용자가 좋아하는 스포츠팀의 다음 경기 일정을 확인하는 등 거의 시간을 쓰지 않고도 즉각적인 이점을 얻을 수 있습니다.
기본적으로 음성에 더 적합한 작업 이러한 작업은 일반적으로 요가나 가벼운 운동 중 코칭을 받거나 음성 우선 상호작용을 위해 설계된 게임과 같이 핸즈프리로 실행할 수 있는 작업입니다.
빌드 방법
Actions on Google을 사용하면 Actions SDK나 Actions Builder 또는 두 가지 모두를 사용하여 대화형 작업을 빌드할 수 있습니다. 이 기능을 사용하면 필요에 따라 최적의 개발 워크플로를 선택할 수 있으며 필요할 때 유연하게 전환할 수 있습니다.
Actions SDK는 작업을 빌드하기 위한 표준화된 파일 기반 스키마, 어시스턴트와 상호작용하는 라이브러리, 작업 프로젝트를 배포 및 관리하는 CLI를 제공합니다. Actions Builder는 Actions SDK와 동일한 기술을 기반으로 빌드되었으며, 사용하기 쉽고 강력한 IDE로 빌드할 수 있습니다.
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eConversational Actions on Google Assistant let you create custom voice experiences for users by handling requests and returning audio/visual responses.\u003c/p\u003e\n"],["\u003cp\u003eAssistant's natural language understanding (NLU) handles language nuances, making it easier to build conversational interfaces compared to traditional structured input methods.\u003c/p\u003e\n"],["\u003cp\u003eConversational Actions are best for simple, quick tasks, or immersive, voice-forward experiences.\u003c/p\u003e\n"],["\u003cp\u003eYou can build Actions with the Actions SDK, Actions Builder, or both, offering flexibility in your development workflow.\u003c/p\u003e\n"]]],["Conversational Actions create custom Google Assistant experiences, handling user requests and returning responses with audio and visual components. Assistant manages natural language understanding, translating varied user inputs into structured intents. Actions excel in tasks requiring simple, familiar input, providing quick user benefits, or leveraging voice-first interactions. Developers can build using the Actions SDK, Actions Builder, or a mix of both, offering flexibility in development workflows. The process includes defining user intents, parsing data, and utilizing webhooks to generate customized responses.\n"],null,["# Conversational Actions extend the functionality of Google Assistant by allowing you to\ncreate custom experiences, or conversations, for users of Google\nAssistant. In a conversation, your Conversational Action handles requests from\nAssistant and returns responses with audio and visual components. Conversational Actions\ncan also communicate with external web services with webhooks for added\nconversational or business logic before returning a response.\n**Figure 1.** An example of a Conversational Action\n\nWhy build\n---------\n\nTypical computer interfaces require structured and predictable input to\nfunction properly, which makes the use of these interfaces unnatural and\nsometimes difficult. If users can't easily figure out this structured input,\nthey'll have a hard time figuring out what to do.\n\nFor example, consider an easy user request like, *\"What's the forecast like\ntoday?\"* Other users might also ask, *\"What's the weather like right now?\"*\nor *\"What's the temperature like in San Francisco tomorrow?\"* Even with this\nsimple question, you can see that conversational experiences are hard to\nimplement, because interpreting and processing natural language requires a\nvery robust language parser that's capable of understanding the nuances of\nlanguage. Your code would have to handle all these different types of requests\n(and potentially many more) to carry out the same logic: looking up some\nforecast information for a time and location. For this reason, a traditional\ncomputer interface requires well-known, standard input requests to the detriment\nof the user experience, because it's easier to handle highly structured input.\n\nHowever, when you build Conversational Actions, Assistant handles the\nnatural language understanding (NLU) for you, so you can build open-ended,\nconversational interfaces easily. These interface tools let you understand the\nvast and varied nuances of human language and translate that to standard and\nstructured meaning that your apps and services can understand. Let's take a look\nat how an Action might handle the previous examples for weather forecast\nrequests.\n**Figure 1**. NLU intent matching\n\nTo look up a weather forecast, you might need a few pieces of information,\nlike the time users want the forecast for and their location. However, as we\npreviously mentioned, different users might request a forecast in different\nway. The Assistant can understand these differences and translate them to a\nstandard user intent to get the forecast. It can then parse the user's request\nfor the pertinent data you need to fulfill the request. In this case, that's\nthe user's desired time and location for the weather forecast. Finally, you\ncan use this data to look up the weather with a public REST API and return the\nweather to the user in the form of a prompt.\n\nWhen to build\n-------------\n\nConversational Actions work best for simple use cases that let users get things done\nquickly as well as for immersive use cases that are voice-forward.\nGood Conversational Actions often fall into these general categories:\n\n- **Things people can easily answer.** Actions that can be accomplished with familiar input like times or dates, like booking a flight.\n- **Quick, but useful Actions.** These usually give users immediate benefit for very little time spent, like finding out when their favorite sports team plays next.\n- **Actions that are inherently better suited for voice.** These are typically things you want to do hands-free, like receiving coaching during yoga or light exercise or a game that's been designed for voice-first interactions.\n\nHow to build\n------------\n\nActions on Google lets you build Conversational Actions with either the Actions\nSDK, Actions Builder, or both interchangeably. This feature lets you choose the\nbest development workflow for your needs, while giving you the flexibility of\nswitching back and forth when needed.\n\nThe Actions SDK provides a standardized, file-based schema to build your Actions,\nlibraries to interact with Assistant, and a CLI to deploy and manage your\nActions project. Actions Builder is built on top of the same technology\nas the Actions SDK and lets you build with an easy-to-use and powerful IDE.\n\nSee the [Build overview](/assistant/conversational/build) for more information.\n\nNext steps\n----------\n\nCheck out the following resources to start building now:\n\n- [**Quick start guide**](/assistant/conversational/quickstart) - Get a quick introduction on how to set up your environment and start developing with Actions SDK and Builder.\n- [**Codelabs**](/assistant/conversational/codelabs) - Codelabs offer detailed and in-depth walkthroughs on how to build Actions for the Google Assistant.\n- [**Samples**](/assistant/conversational/samples) - Get all of our samples on Github to start experimenting now."]]