Stay organized with collectionsSave and categorize content based on your preferences.
Deep Research is a Made by Google agent for users who need to gather,
analyze, and understand internal and external information.
When you enter a prompt to Deep Research, such as "Compare Example
Project competitors", Deep Research assesses whether the question is
research related, generates a plan outlining the steps it takes to do the
research, and streams questions and answers as it progresses in its research. It
then generates a report of its findings with citations as well as an audio
summary.
For research sources, Deep Research uses data that the app indexes. It can
also use web results if web search is enabled for the app.
Here are some example prompts that Deep Research generates reports
for:
How can we improve the user experience of our existing mobile banking
app to make it more intuitive and user-friendly?
How can we reduce customer wait times during peak hours without
compromising on the quality of support?
Analyze the economic situation of Central European countries.
Compare BigQuery with its competitors, and provide the results in
table format.
Use Deep Research
Your end users can access and use Deep Research through the app.
Deep Research has access to data that the app has already indexed and,
if enabled, web results.
You can get results from Deep Research from the app or using the API.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-08 UTC."],[],[],null,["Deep Research is a Made by Google agent for users who need to gather,\nanalyze, and understand internal and external information.\n| **Note:** Made by Google agents require the Agentspace Enterprise Plus edition.\n\nWhen you enter a prompt to Deep Research, such as \"Compare Example\nProject competitors\", Deep Research assesses whether the question is\nresearch related, generates a plan outlining the steps it takes to do the\nresearch, and streams questions and answers as it progresses in its research. It\nthen generates a report of its findings with citations as well as an audio\nsummary.\n\nFor research sources, Deep Research uses data that the app indexes. It can\nalso use web results if web search is enabled for the app.\n\nHere are some example prompts that Deep Research generates reports\nfor:\n\n- How can we improve the user experience of our existing mobile banking app to make it more intuitive and user-friendly?\n- How can we reduce customer wait times during peak hours without compromising on the quality of support?\n- Analyze the economic situation of Central European countries.\n- Compare BigQuery with its competitors, and provide the results in table format.\n\nUse Deep Research\n\nYour end users can access and use Deep Research through the app.\nDeep Research has access to data that the app has already indexed and,\nif enabled, web results.\n\nYou can get results from Deep Research from the app or using the API. \n\nConsole\n\nTo use Deep Research in the app, do the following:\n\n1. In the app navigation menu, go to **Deep Research**.\n\n2. Click **Sources** to select the sources that the agent must include to\n provide the most relevant data insights.\n\n In the sources, in addition to your Agentspace\n sources, you can also choose to include Google Search results.\n3. Enter a prompt to Deep Research and click **Submit**. If the prompt isn't\n research-related, Deep Research generates an answer. If the prompt\n is determined to be research-related, then Deep Research outlines the topics\n that the agent plans to research in a research plan.\n\n4. Edit the agent's prompt, if necessary, to generate a new research plan that\n better suits your requirements.\n\n5. If the research plan is acceptable to you, click **Start Research**.\n\n The agent starts researching based on the plan:\n - Streams the topics that it's researching as it progresses\n - Generates a report of findings with citations\n - Creates a 1-2 minute audio summary of the report\n\nREST\n\nTo use Deep Research using the API, do the following:\n\n1. Send a request to the\n [`streamAssist`](/agentspace/docs/reference/rest/v1/projects.locations.collections.engines.assistants/streamAssist)\n method.\n\n ```\n curl -X POST \\\n -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"Content-Type: application/json\" \\\n -H \"X-Goog-User-Project: PROJECT_ID\" \\\n \"https://discoveryengine.googleapis.com/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist\" \\\n -d '{\n \"query\": {\n \"text\": \"QUERY\"\n },\n \"agentsSpec\": {\n \"agentSpecs\": {\n \"agentId\": \"deep_research\"\n }\n },\n \"toolsSpec\": {\n \"vertexAiSearchSpec\": {\n \"dataStoreSpecs\": {\n \"dataStore\": \"projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID\"\n }\n },\n \"webGroundingSpec\": {}\n }\n }'\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n - \u003cvar translate=\"no\"\u003eAPP_ID\u003c/var\u003e: the ID of the app.\n - \u003cvar translate=\"no\"\u003eQUERY\u003c/var\u003e: the query.\n - \u003cvar translate=\"no\"\u003eDATA_STORE_ID\u003c/var\u003e: the ID of the data store when an app has multiple data stores. When you specify this, the search is limited to the documents in the specified data store.\n\n Response\n\n\n If your request is successful, you receive a JSON response similar to the\n following response. Note the \u003cvar class=\"edit\" translate=\"no\"\u003eSESSION_ID\u003c/var\u003e. This is\n required to initiate the research process in the next step. \n\n ```\n [{\n \"answer\": {\n \"name\": \"ANSWER_ASSIST_NAME\",\n \"state\": \"SUCCEEDED\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"INLINE_TEXT\"\n }\n },\n },\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"INLINE_TEXT_WITH_RESEARCH_PLAN\"\n },\n \"contentMetadata\": {\n \"contentKind\": \"RESEARCH_PLAN\"\n }\n },\n }\n ],\n },\n \"sessionInfo\": {\n \"session\": \"SESSION_ID\",\n \"queryId\": \"QUERY_ID\",\n \"turnId\": \"TURN_ID\"\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n }\n ]\n ```\n2. Initiate the research for the query in the previous step. To do so, send\n another request to the\n [`streamAssist`](/agentspace/docs/reference/rest/v1/projects.locations.collections.engines.assistants/streamAssist)\n method. In this request, set your query as `Start Research` and add the\n session information from the previous step.\n\n ```\n curl -X POST \\\n -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"Content-Type: application/json\" \\\n -H \"X-Goog-User-Project: PROJECT_ID\" \\\n \"https://discoveryengine.googleapis.com/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist\" \\\n -d '{\n \"query\": {\n \"text\": \"Start Research\"\n },\n \"session\": \"SESSION_ID\",\n \"agentsSpec\": {\n \"agentSpecs\": {\n \"agentId\": \"deep_research\"\n }\n },\n \"toolsSpec\": {\n \"vertexAiSearchSpec\": {\n \"dataStoreSpecs\": {\n \"dataStore\": \"projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID\"\n }\n },\n \"webGroundingSpec\": {}\n },\n }'\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n - \u003cvar translate=\"no\"\u003eAPP_ID\u003c/var\u003e: the ID of the app.\n - \u003cvar translate=\"no\"\u003eSESSION_ID\u003c/var\u003e: the session ID from the previous step.\n - \u003cvar translate=\"no\"\u003eDATA_STORE_ID\u003c/var\u003e: the ID of the data store when an app has multiple data stores. When you specify this, the search is limited to the documents in the specified data store.\n\n Response\n\n If your request is successful, you receive a JSON response similar to the\n following truncated response.\n\n The response contains an instance of the\n [`AssistAnswer`](/agentspace/docs/reference/rest/v1/projects.locations.collections.engines.sessions.assistAnswers)\n resource.\n\n This is a streaming response and, therefore,\n depending on the amount of data in the research response, it can take some\n time to fully stream it. \n\n ```\n [{\n \"answer\": {\n \"state\": \"IN_PROGRESS\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"RESEARCH_QUESTION_1\"\n },\n \"contentMetadata\": {\n \"contentKind\": \"RESEARCH_QUESTION\",\n \"contentId\": \"ID0\"\n }\n },\n }\n ]\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n },\n {\n \"answer\": {\n \"state\": \"IN_PROGRESS\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"RESEARCH_ANSWER_1_PART_1\"\n },\n \"contentMetadata\": {\n \"contentKind\": \"RESEARCH_ANSWER\",\n \"contentId\": \"ID0\"\n }\n },\n }\n ]\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n },\n {\n \"answer\": {\n \"state\": \"IN_PROGRESS\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"RESEARCH_ANSWER_1_PART_2\"\n },\n \"contentMetadata\": {\n \"contentKind\": \"RESEARCH_ANSWER\",\n \"contentId\": \"ID0\"\n }\n },\n }\n ]\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n },\n {\n \"answer\": {\n \"state\": \"IN_PROGRESS\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"text\": \"INLINE_TEXT\"\n },\n \"textGroundingMetadata\": {\n \"references\": [\n {\n \"documentMetadata\": {\n \"document\": \"DOCUMENT_ID\",\n \"uri\": \"DOCUMENT_REDIRECT_URI\",\n \"title\": \"DOCUMENT_TITLE\",\n \"pageIdentifier\": \"\",\n \"domain\": \"DOCUMENT_DOMAIN\"\n }\n }\n ]\n \"searchEntryPoints\": [\n {\n \"renderedContent\": \"GROUNDING_SEARCH_ENTRY_POINT\"\n }\n ]\n }\n }\n }\n ]\n }\n },\n {\n \"answer\": {\n \"state\": \"IN_PROGRESS\",\n \"replies\": [\n {\n \"groundedContent\": {\n \"content\": {\n \"role\": \"model\",\n \"file\": {\n \"fileId\": \"AUDIO_FILE_ID\"\n }\n },\n \"contentMetadata\": {\n \"contentKind\": \"RESEARCH_AUDIO_SUMMARY\"\n }\n },\n }\n ]\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n }\n {\n \"answer\": {\n \"name\": \"ANSWER_ASSIST_NAME\",\n \"state\": \"SUCCEEDED\"\n },\n \"sessionInfo\": {\n \"session\": \"SESSION_ID\",\n \"queryId\": \"QUERY_ID\",\n \"turnId\": \"TURN_ID\"\n },\n \"assistToken\": \"ASSIST_TOKEN\"\n }]\n ```\n\n\u003cbr /\u003e"]]