অ্যান্টিগ্র্যাভিটি এজেন্ট

অ্যান্টিগ্র্যাভিটি এজেন্ট হলো জেমিনি এপিআই-এর একটি সাধারণ-উদ্দেশ্যমূলক পরিচালিত এজেন্ট। একটিমাত্র এপিআই কলের মাধ্যমে আপনি এমন একটি এজেন্ট পাবেন, যা গুগল দ্বারা হোস্ট করা আপনার নিজস্ব সুরক্ষিত লিনাক্স স্যান্ডবক্সের ভেতরে যুক্তি-তর্ক করতে, কোড চালাতে, ফাইল পরিচালনা করতে এবং ওয়েব ব্রাউজ করতে পারে।

এটি জেমিনি ৩.৫ ফ্ল্যাশ দ্বারা চালিত এবং অ্যান্টিগ্র্যাভিটি আইডিই-এর মতো একই হারনেস ব্যবহার করে। এটি ইন্টারেকশনস এপিআই এবং গুগল এআই স্টুডিও-এর মাধ্যমে উপলব্ধ।

পাইথন

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    environment="remote",
)

print(interaction.output_text)

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    environment: "remote",
}, { timeout: 300000 });

console.log(interaction.output_text);

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
    "agent": "antigravity-preview-05-2026",
    "input": "Read Hacker News, summarize the top 10 stories, and save the results as a PDF.",
    "environment": "remote"
}'

সক্ষমতা

প্রতিটি কল একটি লিনাক্স স্যান্ডবক্স প্রস্তুত করতে পারে এবং একটি টুল-ব্যবহারের চক্র শুরু করে। এজেন্ট পরিকল্পনা করে, কাজ করে, ফলাফল পর্যবেক্ষণ করে এবং কাজটি সম্পন্ন না হওয়া পর্যন্ত পুনরাবৃত্তি করে।

  • কোড এক্সিকিউশন: ব্যাশ, পাইথন এবং নোড.জেএস কমান্ড চালান। প্যাকেজ ইনস্টল করুন, টেস্ট চালান, অ্যাপ বিল্ড করুন।
  • ফাইল ব্যবস্থাপনা: স্যান্ডবক্সে ফাইল পড়ুন, লিখুন, সম্পাদনা করুন, অনুসন্ধান করুন এবং তালিকাভুক্ত করুন। প্রতিটি ব্যবহারের পরেও ফাইলগুলো অপরিবর্তিত থাকে।
  • ওয়েব অ্যাক্সেস: ডেটার জন্য গুগল সার্চ এবং ইউআরএল সংগ্রহ।
  • কনটেক্সট কম্প্যাকশন: কনটেক্সট না হারিয়ে বা টোকেন সীমায় না পৌঁছে দীর্ঘস্থায়ী, একাধিক টার্নের সেশন সমর্থন করার জন্য স্বয়ংক্রিয় কনটেক্সট কম্প্যাকশন (প্রায় ১৩৫ হাজার টোকেনে সক্রিয় হয়)।

একাধিক টার্ন ব্যবহার এবং স্ট্রিমিংয়ের জন্য কুইকস্টার্ট দেখুন।

সমর্থিত সরঞ্জাম

ডিফল্টরূপে, এজেন্টের code_execution , google_search , এবং url_context এ অ্যাক্সেস থাকে। আপনি যখন environment প্যারামিটারটি নির্দিষ্ট করেন, তখন ফাইলসিস্টেম টুলগুলো স্বয়ংক্রিয়ভাবে সক্রিয় হয়ে যায়। এজেন্টকে আপনার নিজস্ব এপিআই (API) এবং টুলের সাথে সংযুক্ত করার জন্য আপনি কাস্টম ফাংশনও সংজ্ঞায়িত করতে পারেন। ডিফল্ট সেটটি কাস্টমাইজ বা সীমাবদ্ধ করার সময়, অথবা কাস্টম ফাংশন যোগ করার সময়ই কেবল আপনাকে tools প্যারামিটারটি নির্দিষ্ট করতে হবে।

সরঞ্জাম টাইপ মান বর্ণনা
কোড এক্সিকিউশন code_execution stdout/stderr ক্যাপচার সহ শেল কমান্ড (bash, Python, Node) চালান।
গুগল অনুসন্ধান google_search পাবলিক ওয়েবে অনুসন্ধান করুন।
ইউআরএল প্রসঙ্গ url_context ওয়েব পেজ সংগ্রহ করুন এবং পড়ুন।
ফাইলসিস্টেম ( environment মাধ্যমে সক্রিয় করা হয়েছে) স্যান্ডবক্সে ফাইল পড়ুন, লিখুন, সম্পাদনা করুন, অনুসন্ধান করুন এবং তালিকাভুক্ত করুন। এর জন্য কোনো আলাদা টুলের প্রয়োজন নেই; environment সেট করার সময় এটি স্বয়ংক্রিয়ভাবে সক্রিয় হয়ে যায়।
কাস্টম ফাংশন function কাস্টম ফাংশন সংজ্ঞায়িত করুন যা এজেন্ট কার্যকর করার জন্য অনুরোধ করতে পারে। ফাংশন কলিং দেখুন।
রিমোট এমসিপি সার্ভার mcp_server বাহ্যিক মডেল কনটেক্সট প্রোটোকল (MCP) সার্ভারগুলোকে টুল হিসেবে নিবন্ধন করুন। MCP সার্ভারসমূহ দেখুন।

এজেন্টকে নির্দিষ্ট টুলগুলিতে সীমাবদ্ধ রাখতে, শুধুমাত্র আপনার প্রয়োজনীয় টুলগুলি পাস করুন:

পাইথন

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Search for the latest AI research papers on reasoning and summarize them.",
    environment="remote",
    tools=[
        {"type": "google_search"},
        {"type": "url_context"},
    ],
)

print(interaction.output_text)

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Search for the latest AI research papers on reasoning and summarize them.",
    environment: "remote",
    tools: [
        { type: "google_search" },
        { type: "url_context" },
    ],
}, { timeout: 300000 });

console.log(interaction.output_text);

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
    "agent": "antigravity-preview-05-2026",
    "input": "Search for the latest AI research papers on reasoning and summarize them.",
    "environment": "remote",
    "tools": [
        {"type": "google_search"},
        {"type": "url_context"}
    ]
}'

মাল্টিমোডাল ইনপুট

অ্যান্টিগ্র্যাভিটি এজেন্ট মাল্টিমোডাল ইনপুট সমর্থন করে। বর্তমানে, শুধুমাত্র text এবং image ইনপুট সমর্থিত। ইমেজ অবশ্যই ইনলাইন বেস৬৪-এনকোডেড স্ট্রিং ( data ) হিসেবে সরবরাহ করতে হবে।

পাইথন

import base64
from google import genai

client = genai.Client()

with open("path/to/chart.png", "rb") as f:
    image_bytes = f.read()

interaction_inline = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input=[
        {"type": "text", "text": "Analyze this chart and summarize the trends."},
        {
            "type": "image",
            "data": base64.b64encode(image_bytes).decode("utf-8"),
            "mime_type": "image/png",
        },
    ],
    environment="remote",
)

জাভাস্ক্রিপ্ট


import { GoogleGenAI } from "@google/genai";

import * as fs from "node:fs";

const client = new GoogleGenAI({});
const base64Image = fs.readFileSync("path/to/chart.png", { encoding: "base64" });

const interactionInline = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: [
        { type: "text", text: "Analyze this chart and summarize the trends." },
        {
            type: "image",
            data: base64Image,
            mime_type: "image/png",
        },
    ],
    environment: "remote",
}, { timeout: 300000 });

বিশ্রাম

BASE64_IMAGE=$(base64 -w0 /path/to/chart.png)

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d "{
    \"agent\": \"antigravity-preview-05-2026\",
    \"input\": [
        {\"type\": \"text\", \"text\": \"Analyze this chart and summarize the trends.\"},
        {
            \"type\": \"image\",
            \"mime_type\": \"image/png\",
            \"data\": \"$BASE64_IMAGE\"
        }
    ],
    \"environment\": \"remote\"
}"

ফাংশন কলিং

ফাংশন কলিং আপনাকে এমন কাস্টম টুল সংজ্ঞায়িত করার মাধ্যমে অ্যান্টিগ্র্যাভিটি এজেন্টকে বাহ্যিক এপিআই এবং ডেটাবেসের সাথে সংযুক্ত করার সুযোগ দেয়, যা এজেন্টটি ব্যবহার করতে পারে। সাধারণ ধারণাগুলোর জন্য, জেমিনি এপিআই-এর সাথে ফাংশন কলিং দেখুন।

নিম্নলিখিত উদাহরণটি একটি ২-ধাপের মিথস্ক্রিয়া প্রদর্শন করে। এজেন্ট প্রথমে একটি কাস্টম get_weather ফাংশন কলের অনুরোধ করে, এবং ক্লায়েন্ট দ্বিতীয় ধাপে সেটি সম্পাদন করে ফলাফল ফেরত দেয়।

পাইথন

from google import genai

client = genai.Client()

# 1. Define the custom function
get_weather_tool = {
    "type": "function",
    "name": "get_weather",
    "description": "Gets the current weather for a given location.",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "The city and country, e.g. San Francisco, USA",
            }
        },
        "required": ["location"],
    },
}

# 2. Call the agent with the custom tool (Turn 1)
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="What is the weather in Tokyo?",
    environment="remote",
    tools=[
        {"type": "code_execution"},  # Enable default code execution
        get_weather_tool,            # Add custom function
    ],
)

# Check if the agent requested a function call
if interaction.status == "requires_action":
    # Find function calls that do not have a matching function result.
    # Filesystem tools (like write_file) are also represented as function calls
    # but are executed automatically by the environment.
    executed_calls = {step.call_id for step in interaction.steps if step.type == "function_result"}
    pending_calls = [step for step in interaction.steps if step.type == "function_call" and step.id not in executed_calls]

    if pending_calls:
        fc_step = pending_calls[0]
        print(f"Function to call: {fc_step.name} (ID: {fc_step.id})")
        print(f"Arguments: {fc_step.arguments}")

        # 3. Execute the function locally (simulated get_weather()) and send the result back (Turn 2)
        function_result = {
            "temperature": 23,
            "unit": "celsius"
        }

        final_interaction = client.interactions.create(
            agent="antigravity-preview-05-2026",
            previous_interaction_id=interaction.id,  # Reference the interaction ID
            environment=interaction.environment_id,
            input=[
                {
                    "type": "function_result",
                    "name": fc_step.name,
                    "call_id": fc_step.id,
                    "result": function_result,
                }
            ],
        )

        print(final_interaction.output_text)
        # Output: The current weather in Tokyo, Japan is 23°C (Celsius).
    else:
        print("No pending function calls.")
else:
    print(f"Interaction completed with status: {interaction.status}")

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

// 1. Define the custom function
const get_weather_tool = {
  type: "function",
  name: "get_weather",
  description: "Gets the current weather for a given location.",
  parameters: {
    type: "object",
    properties: {
      location: {
        type: "string",
        description: "The city and country, e.g. San Francisco, USA",
      },
    },
    required: ["location"],
  },
};

// 2. Call the agent with the custom tool (Turn 1)
const interaction = await client.interactions.create({
  agent: "antigravity-preview-05-2026",
  input: "What is the weather in Tokyo?",
  environment: "remote",
  tools: [
    { type: "code_execution" },
    get_weather_tool,
  ],
}, { timeout: 300000 });

if (interaction.status === "requires_action") {
  // Find function calls that do not have a matching function result.
  // Filesystem tools (like write_file) are also represented as function calls
  // but are executed automatically by the environment.
  const executedCalls = new Set(
    interaction.steps
      .filter(s => s.type === "function_result")
      .map(s => s.call_id)
  );
  const pendingCalls = interaction.steps.filter(
    s => s.type === "function_call" && !executedCalls.has(s.id)
  );

  if (pendingCalls.length > 0) {
    const fcStep = pendingCalls[0];
    console.log(`Function to call: ${fcStep.name} (ID: ${fcStep.id})`);

    // 3. Execute the function locally (simulated get_weather()) and send the result back (Turn 2)
    const functionResult = {
      temperature: 23,
      unit: "celsius"
    };

    const finalInteraction = await client.interactions.create({
      agent: "antigravity-preview-05-2026",
      previous_interaction_id: interaction.id, // Reference the interaction ID
      environment: interaction.environment_id,
      input: [
        {
          type: "function_result",
          name: fcStep.name,
          call_id: fcStep.id,
          result: functionResult,
        }
      ],
    }, { timeout: 300000 });

    console.log(finalInteraction.output_text);
  } else {
    console.log("No pending function calls.");
  }
} else {
  console.log(`Interaction completed with status: ${interaction.status}`);
}

বিশ্রাম

# 1. Turn 1: Request function call
RESPONSE=$(curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -d '{
      "agent": "antigravity-preview-05-2026",
      "input": "What is the weather in Tokyo?",
      "environment": "remote",
      "tools": [
          {"type": "code_execution"},
          {
              "type": "function",
              "name": "get_weather",
              "description": "Gets the current weather for a given location.",
              "parameters": {
                  "type": "object",
                  "properties": {
                      "location": {"type": "string"}
                  },
                  "required": ["location"]
              }
          }
      ]
  }')

# Extract interaction ID, environment ID, and call ID (requires jq)
INTERACTION_ID=$(echo $RESPONSE | jq -r '.id')
ENVIRONMENT_ID=$(echo $RESPONSE | jq -r '.environment_id')
CALL_ID=$(echo $RESPONSE | jq -r '.steps[] | select(.type=="function_call") | .id')

# 2. Turn 2: Send function result back using variables
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -d "{
      \"agent\": \"antigravity-preview-05-2026\",
      \"previous_interaction_id\": \"$INTERACTION_ID\",
      \"environment\": \"$ENVIRONMENT_ID\",
      \"input\": [
          {
              \"type\": \"function_result\",
              \"name\": \"get_weather\",
              \"call_id\": \"$CALL_ID\",
              \"result\": {
                  \"temperature\": 23,
                  \"unit\": \"celsius\"
              }
          }
      ]
  }"

এমসিপি সার্ভার

আপনি রিমোট মডেল কনটেক্সট প্রোটোকল (MCP) সার্ভার নিবন্ধন করার মাধ্যমে অ্যান্টিগ্র্যাভিটি এজেন্টকে বাহ্যিক টুলগুলোর সাথে সংযুক্ত করতে পারেন। এজেন্টটি স্ট্রিমেবল HTTP-এর মাধ্যমে রিমোট MCP সার্ভার সমর্থন করে।

একটি MCP সার্ভার নিবন্ধন করার সময়, আপনাকে tools অ্যারেতে নিম্নলিখিত ফিল্ডগুলি অবশ্যই উল্লেখ করতে হবে:

মাঠ প্রকার প্রয়োজনীয় বর্ণনা
type স্ট্রিং হ্যাঁ অবশ্যই "mcp_server" হতে হবে।
name স্ট্রিং হ্যাঁ সার্ভারের জন্য একটি অনন্য শনাক্তকারী। এটি অবশ্যই কঠোরভাবে ছোট হাতের অক্ষর এবং বর্ণ ও সংখ্যা দিয়ে গঠিত হতে হবে (যা ^[a-z0-9_-]+$ এর সাথে মেলে)।
url স্ট্রিং হ্যাঁ রিমোট এমসিপি সার্ভারের এন্ডপয়েন্ট ইউআরএল।
headers বস্তু না অনুরোধের সাথে পাঠানো কাস্টম হেডার (যেমন, প্রমাণীকরণ)।
allowed_tools অ্যারে না যেসব টুল চালানোর অনুমতি আছে, তার নামগুলোর তালিকা। এগুলো বাদ দিলে, সব টুলই ব্যবহার করা যাবে।

পাইথন

from google import genai

client = genai.Client()

# Register a remote HTTP MCP server
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="What is the weather in Tokyo?",
    environment="remote",
    tools=[{
        "type": "mcp_server",
        "name": "weather", # Must be lowercase
        "url": "https://gemini-api-demos.uc.r.appspot.com/mcp"
    }]
)

print(interaction.output_text)

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "What is the weather in Tokyo?",
    environment: "remote",
    tools: [{
        type: "mcp_server",
        name: "weather", // Must be lowercase
        url: "https://gemini-api-demos.uc.r.appspot.com/mcp"
    }]
}, { timeout: 300000 });

console.log(interaction.output_text);

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -d '{
      "agent": "antigravity-preview-05-2026",
      "input": "What is the weather in Tokyo?",
      "environment": "remote",
      "tools": [{
          "type": "mcp_server",
          "name": "weather",
          "url": "https://gemini-api-demos.uc.r.appspot.com/mcp"
      }]
  }'

এজেন্টকে কাস্টমাইজ করা

আপনি Antigravity এজেন্টের নির্দেশাবলী, টুলস এবং পরিবেশ কাস্টমাইজ করে এটিকে সম্প্রসারিত করতে পারেন। এজেন্টটি কাস্টমাইজেশনের জন্য একটি ফাইলসিস্টেম-নেটিভ পদ্ধতি সমর্থন করে: আপনি নির্দেশাবলী এবং দক্ষতার জন্য AGENTS.md মতো ফাইলগুলি সরাসরি স্যান্ডবক্সের .agents/skills/ ফোল্ডারে মাউন্ট করতে পারেন, অথবা ইন্টারঅ্যাকশনের সময় ইনলাইন কনফিগারেশন পাস করতে পারেন। আপনি ইনলাইনে আপনার কনফিগারেশন পরিমার্জন করতে পারেন এবং প্রস্তুত হলে এটিকে একটি ম্যানেজড এজেন্ট হিসাবে সংরক্ষণ করতে পারেন।

কাস্টম এজেন্ট কীভাবে তৈরি করতে হয় তার সম্পূর্ণ বিবরণের জন্য, ‘বিল্ডিং ম্যানেজড এজেন্টস’ দেখুন।

পটভূমি সম্পাদন

এজেন্টের যে কাজগুলোতে একাধিক ধাপের যুক্তি, কোড সম্পাদন বা ফাইল অপারেশন জড়িত থাকে, সেগুলো সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে। ইন্টারঅ্যাকশনটি অ্যাসিঙ্ক্রোনাসভাবে চালানোর জন্য background=True ব্যবহার করুন। এপিআইটি সাথে সাথেই একটি ইন্টারঅ্যাকশন আইডি ফেরত পাঠায়, যেটি আপনি স্ট্যাটাস completed বা failed পর্যন্ত পোল করতে থাকেন।

পাইথন

import time
from google import genai

client = genai.Client()

# 1. Start the interaction in the background
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Run a complex analysis on the repository.",
    environment="remote",
    background=True,
)

print(f"Interaction started in background: {interaction.id}")

# 2. Poll for completion
while interaction.status == "in_progress":
    time.sleep(5)
    interaction = client.interactions.get(id=interaction.id)

if interaction.status == "completed":
    print(interaction.output_text)
else:
    print(f"Finished with status: {interaction.status}")

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Run a complex analysis on the repository.",
    environment: "remote",
    background: true,
});

console.log(`Interaction started in background: ${interaction.id}`);

let result = interaction;
while (result.status === "in_progress") {
    await new Promise(resolve => setTimeout(resolve, 5000));
    result = await client.interactions.get(interaction.id);
}

if (result.status === "completed") {
    console.log(result.output_text);
} else {
    console.log(`Finished with status: ${result.status}`);
}

বিশ্রাম

# 1. Start the interaction in the background
RESPONSE=$(curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Api-Revision: 2026-05-20" \
  -d '{
      "agent": "antigravity-preview-05-2026",
      "input": "Run a complex analysis on the repository.",
      "environment": "remote",
      "background": true
  }')

INTERACTION_ID=$(echo $RESPONSE | jq -r '.id')

# 2. Poll for results (repeat until status is "completed")
curl -s -X GET "https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID" \
  -H "x-goog-api-key: $GEMINI_API_KEY"

ব্যাকগ্রাউন্ডে চালানোর জন্য store=True প্রয়োজন, যা ডিফল্ট হিসেবে সেট করা থাকে। ব্যাকগ্রাউন্ডে চলার সময় রিয়েল-টাইম অগ্রগতির আপডেটের জন্য, স্ট্রিমিং ব্যাকগ্রাউন্ড ইন্টারঅ্যাকশন দেখুন।

আপনি cancel মেথড ব্যবহার করে চলমান ব্যাকগ্রাউন্ড ইন্টারঅ্যাকশন বাতিল করতে পারেন।

পাইথন

client.interactions.cancel(id="INTERACTION_ID")

জাভাস্ক্রিপ্ট

await client.interactions.cancel({ id: "INTERACTION_ID" });

বিশ্রাম

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions/INTERACTION_ID:cancel" \
  -H "x-goog-api-key: $GEMINI_API_KEY"

ব্যাকগ্রাউন্ড এক্সিকিউশন সহ মাল্টি-টার্ন

যখন কোনো ব্যাকগ্রাউন্ড ইন্টারঅ্যাকশনে স্টেটফুল টুলস (যেমন স্যান্ডবক্সে কোড এক্সিকিউশন) জড়িত থাকে, তখন একই এনভায়রনমেন্টে কাজ চালিয়ে যাওয়ার জন্য সম্পন্ন হওয়া ইন্টারঅ্যাকশন থেকে environment_id ব্যবহার করুন। এটি নিশ্চিত করে যে এজেন্ট তার সমস্ত ফাইল এবং স্টেট অক্ষত রেখে যেখান থেকে কাজ ছেড়েছিল, সেখান থেকেই আবার শুরু করতে পারে।

পাইথন

import time
from google import genai

client = genai.Client()

# First turn: run a task in the background
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Clone https://github.com/google/generative-ai-python and run its tests.",
    environment="remote",
    background=True,
)

while interaction.status == "in_progress":
    time.sleep(5)
    interaction = client.interactions.get(id=interaction.id)

# Second turn: continue in the same environment
followup = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Fix any failing tests and re-run them.",
    previous_interaction_id=interaction.id,
    environment=interaction.environment_id,
    background=True,
)

while followup.status == "in_progress":
    time.sleep(5)
    followup = client.interactions.get(id=followup.id)

print(followup.output_text)

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

// First turn: run a task in the background
let interaction = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Clone https://github.com/google/generative-ai-python and run its tests.",
    environment: "remote",
    background: true,
});

while (interaction.status === "in_progress") {
    await new Promise(resolve => setTimeout(resolve, 5000));
    interaction = await client.interactions.get(interaction.id);
}

// Second turn: continue in the same environment
let followup = await client.interactions.create({
    agent: "antigravity-preview-05-2026",
    input: "Fix any failing tests and re-run them.",
    previous_interaction_id: interaction.id,
    environment: interaction.environment_id,
    background: true,
});

while (followup.status === "in_progress") {
    await new Promise(resolve => setTimeout(resolve, 5000));
    followup = await client.interactions.get(followup.id);
}

console.log(followup.output_text);

বিশ্রাম

# 1. Start first interaction in the background
RESPONSE=$(curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Api-Revision: 2026-05-20" \
  -d '{
      "agent": "antigravity-preview-05-2026",
      "input": "Clone https://github.com/google/generative-ai-python and run its tests.",
      "environment": "remote",
      "background": true
  }')

INTERACTION_ID=$(echo $RESPONSE | jq -r '.id')

# 2. Poll until completed (repeat until status is "completed")
RESULT=$(curl -s -X GET "https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID" \
  -H "x-goog-api-key: $GEMINI_API_KEY")

ENVIRONMENT_ID=$(echo $RESULT | jq -r '.environment_id')

# 3. Continue in the same environment
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Api-Revision: 2026-05-20" \
  -d "{
      \"agent\": \"antigravity-preview-05-2026\",
      \"input\": \"Fix any failing tests and re-run them.\",
      \"previous_interaction_id\": \"$INTERACTION_ID\",
      \"environment\": \"$ENVIRONMENT_ID\",
      \"background\": true
  }"

পরিবেশ

প্রতিটি কল একটি লিনাক্স স্যান্ডবক্স তৈরি বা পুনঃব্যবহার করে। environment প্যারামিটারটি তিনটি রূপে থাকে:

ফর্ম বর্ণনা
"remote" ডিফল্ট সেটিংস সহ একটি নতুন স্যান্ডবক্স প্রস্তুত করুন।
"env_abc123" আইডি ব্যবহার করে বিদ্যমান পরিবেশটি পুনরায় ব্যবহার করুন, এতে সমস্ত ফাইল ও অবস্থা সংরক্ষিত থাকবে।
{...} কাস্টম সোর্স এবং নেটওয়ার্ক নিয়ম সহ সম্পূর্ণ EnvironmentConfig

উৎস (Git, GCS, ইনলাইন), নেটওয়ার্কিং, জীবনচক্র এবং সম্পদের সীমাবদ্ধতা সম্পর্কে বিস্তারিত জানতে পরিবেশ (Environments) দেখুন।

প্রাপ্যতা এবং মূল্য

অ্যান্টিগ্র্যাভিটি এজেন্ট গুগল এআই স্টুডিও-এর ইন্টারঅ্যাকশনস এপিআই এবং জেমিনি এপিআই-এর মাধ্যমে প্রিভিউ হিসেবে উপলব্ধ।

মূল্য নির্ধারণ পদ্ধতিটি ব্যবহারের উপর ভিত্তি করে তৈরি, যা জেমিনি মডেল টোকেন এবং এজেন্টের ব্যবহৃত টুলগুলোর ওপর নির্ভর করে। একটি সাধারণ চ্যাট অনুরোধের মতো নয়, যা কেবল একটি আউটপুট তৈরি করে, অ্যান্টিগ্র্যাভিটি ইন্টারঅ্যাকশন হলো একটি এজেন্টিক ওয়ার্কফ্লো। একটিমাত্র অনুরোধ যুক্তি, টুল সম্পাদন, কোড চালানো এবং ফাইল ব্যবস্থাপনার একটি স্বয়ংক্রিয় চক্রকে সক্রিয় করে।

আনুমানিক খরচ

কাজের জটিলতার উপর ভিত্তি করে খরচ ভিন্ন হয়। কতগুলো টুল কল, কোড এক্সিকিউশন এবং ফাইল অপারেশন প্রয়োজন, তা এজেন্ট স্বয়ংক্রিয়ভাবে নির্ধারণ করে। নিম্নলিখিত অনুমানগুলো একাধিক রানের উপর ভিত্তি করে করা হয়েছে।

কাজের বিভাগ ইনপুট টোকেন আউটপুট টোকেন সাধারণ খরচ
গবেষণা ও তথ্য সংশ্লেষণ ১০০ হাজার–৫০০ হাজার ১০ হাজার–৪০ হাজার $০.৩০–$১.০০
ডকুমেন্ট ও কন্টেন্ট তৈরি ১০০ হাজার–৫০০ হাজার ১৫ হাজার–৫০ হাজার $০.৩০–$১.৩০
প্রক্রিয়া ও সিস্টেম ডিজাইন ১০০ হাজার–৪০০ হাজার ১০ হাজার–৩০ হাজার $০.২৫–$০.৮০
ডেটা প্রক্রিয়াকরণ ও বিশ্লেষণ ৩০০কে–৩এম ৩০ হাজার থেকে দেড় লক্ষ $০.৭০–$৩.২৫

সাধারণত ৫০-৭০% ইনপুট টোকেন ক্যাশ করা হয়। অনেক টুল কল সহ জটিল এজেন্টিক ওয়ার্কফ্লো একটি একক ইন্টারঅ্যাকশনে ৩-৫ মিলিয়ন টোকেন জমা করতে পারে, যার খরচ প্রায় ৫ ডলার পর্যন্ত হতে পারে।

প্রিভিউ সময়কালে এনভায়রনমেন্ট কম্পিউট (সিপিইউ, মেমরি, স্যান্ডবক্স এক্সিকিউশন)-এর জন্য বিল করা হয় না

সীমাবদ্ধতা

  • প্রিভিউ স্ট্যাটাস: অ্যান্টিগ্র্যাভিটি এজেন্ট এবং ইন্টারঅ্যাকশনস এপিআই। ফিচার ও স্কিমা পরিবর্তিত হতে পারে।
  • অসমর্থিত জেনারেশন কনফিগারেশন: নিম্নলিখিত প্যারামিটারগুলো সমর্থিত নয় এবং একটি 400 এরর প্রদান করে: temperature , top_p , top_k , stop_sequences , max_output_tokens
  • কাঠামোগত আউটপুট: অ্যান্টিগ্র্যাভিটি এজেন্ট কাঠামোগত আউটপুট সমর্থন করে না।
  • অনুপলব্ধ টুল: file_search , computer_use , এবং google_maps এখনও সমর্থিত নয়।
  • রিমোট এমসিপি-এর সীমাবদ্ধতা: সার্ভার-সেন্ট ইভেন্টস (এসএসই) ট্রান্সপোর্ট সমর্থিত নয় (স্ট্রিমেবল এইচটিটিপি ব্যবহার করুন)। এছাড়াও, সার্ভারের name অবশ্যই ছোট হাতের অক্ষর এবং অ্যালফানিউমেরিক হতে হবে (বড় হাতের অক্ষর ব্যবহার করলে একটি সাধারণ 400 Bad Request ত্রুটি দেখা দেয়)।
  • ফাইলসিস্টেম টুল: এই মুহূর্তে কোনো ফাইলসিস্টেম টুল নেই। এটি environment একটি অংশ।
  • স্টোরের প্রয়োজনীয়তা: background=True ব্যবহার করে এজেন্ট চালানোর জন্য store=True প্রয়োজন।
  • শুধুমাত্র স্টেটফুল মোডে ফাংশন কলিং সমর্থিত। পালা চালিয়ে যাওয়ার জন্য আপনাকে অবশ্যই previous_interaction_id ব্যবহার করতে হবে; ম্যানুয়ালি ইতিহাস পুনর্গঠন (স্টেটলেস মোড) সমর্থিত নয়।
  • অসমর্থিত মাল্টিমোডাল টাইপ। এই মুহূর্তে অডিও, ভিডিও এবং ডকুমেন্ট ইনপুট সমর্থিত নয়। শুধুমাত্র টেক্সট এবং ইমেজ অনুমোদিত।

এরপর কী?