নেক্সট '২৬ ডেভেলপার কিনোট: দক্ষতা ও সরঞ্জাম দিয়ে ADK এজেন্ট তৈরি

১. ভূমিকা

এই কোডল্যাবে, আপনি এজেন্ট ডেভেলপমেন্ট কিট (ADK) ব্যবহার করে একটি অত্যাধুনিক ম্যারাথন প্ল্যানার এজেন্ট তৈরি করবেন। আপনি পর্যায়ক্রমে এজেন্টটির সক্ষমতাগুলো পরীক্ষা করে দেখবেন, যার মধ্যে রয়েছে একটি সুগঠিত সিস্টেম প্রম্পট থেকে শুরু করে ডাইনামিক স্কিল লোডিং এবং ম্যাপিং এমসিপি টুলস পর্যন্ত। সবশেষে, আপনি এজেন্টটিকে স্থানীয়ভাবে পরীক্ষা করবেন এবং এজেন্ট রানটাইম (এজেন্ট ইঞ্জিন)-এ ডেপ্লয় করবেন।

আপনি যা করবেন

  • একটি নতুন ADK এজেন্ট প্রজেক্ট শুরু করুন
  • একটি কাঠামোগত বিল্ডার ব্যবহার করে একটি শক্তিশালী সিস্টেম প্রম্পট তৈরি করুন।
  • বাস্তব অবস্থানের প্রেক্ষাপটের জন্য গুগল ম্যাপস এমসিপি টুলস যোগ করুন।
  • এজেন্টের টুলসেটে গতিশীলভাবে দক্ষতাগুলো লোড করুন
  • স্থানীয়ভাবে এজেন্টের কার্যকারিতা পরীক্ষা করুন
  • এজেন্ট ইঞ্জিনে (ক্লাউড রান) এজেন্টটি স্থাপন করুন

আপনার যা যা লাগবে

  • ক্রোমের মতো একটি ওয়েব ব্রাউজার
  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
  • পাইথন সম্পর্কে প্রাথমিক ধারণা

এই কোডল্যাবটি সেইসব মধ্যম স্তরের ডেভেলপারদের জন্য, যারা বিশেষায়িত জেনারেটিভ এআই এজেন্ট তৈরি করতে চান।

আনুমানিক সময়কাল: ৪৫ মিনিট

এই কোডল্যাবে তৈরি রিসোর্সগুলোর খরচ ২ ডলারের কম হওয়া উচিত।

২. শুরু করার আগে

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।

ক্লাউড শেল শুরু করুন

ক্লাউড শেল হলো গুগল ক্লাউডে চালিত একটি কমান্ড-লাইন পরিবেশ, যা প্রয়োজনীয় টুলস সহ আগে থেকেই লোড করা থাকে।

  1. Google Cloud কনসোলের শীর্ষে থাকা Activate Cloud Shell-এ ক্লিক করুন।
  2. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনার প্রমাণীকরণ যাচাই করুন:
    gcloud auth list
    
  3. আপনার প্রজেক্টটি কনফিগার করা হয়েছে কিনা তা নিশ্চিত করুন:
    gcloud config get project
    
  4. আপনার প্রজেক্টটি প্রত্যাশা অনুযায়ী সেট করা না থাকলে, এটি সেট করুন:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

প্রমাণীকরণ যাচাই করুন:

gcloud auth list

আপনার প্রকল্পটি নিশ্চিত করুন:

gcloud config get project

প্রয়োজনে সেট করুন:

export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

এপিআই সক্ষম করুন

প্রয়োজনীয় সকল API সক্রিয় করতে এই কমান্ডটি চালান:

gcloud services enable \
  aiplatform.googleapis.com \
  run.googleapis.com \
  secretmanager.googleapis.com \
  mapstools.googleapis.com \
  storage.googleapis.com \
  cloudresourcemanager.googleapis.com \
  serviceusage.googleapis.com

একটি গুগল ম্যাপস এপিআই কী তৈরি করুন

গুগল ম্যাপস এমসিপি টুলস ব্যবহার করার জন্য, আপনাকে একটি ম্যাপস এপিআই কী তৈরি করতে হবে।

  1. গুগল ক্লাউড কনসোলে, সার্চ বার ব্যবহার করে Google Maps Platform > Credentials- এ যান।
  2. অনুরোধ করা হলে, আপনার গুগল ক্লাউড প্রজেক্টটি নিশ্চিত করুন।
  3. Create Credentials-এ ক্লিক করুন এবং API key নির্বাচন করুন।
  4. তৈরি হওয়া এপিআই কী-টি কপি করুন। পরবর্তী ধাপে এটি আপনার প্রয়োজন হবে।

৩. আপনার পরিবেশ প্রস্তুত করুন

এই কোডল্যাবের কোডটি গিটহাবে হোস্ট করা আছে। আপনাকে রিপোজিটরিটি ক্লোন করতে হবে, যেখানে ডিরেক্টরি কাঠামো এবং প্রয়োজনীয় উপ-উপাদানগুলো (যেমন skills/ ডিরেক্টরি) রয়েছে।

  1. রিপোজিটরিটি ক্লোন করুন এবং প্রজেক্ট ফোল্ডারে যান:
git clone https://github.com/GoogleCloudPlatform/next-26-keynotes
cd next-26-keynotes/devkey/demo-1
  1. একটি পাইথন ভার্চুয়াল এনভায়রনমেন্ট সেট আপ করুন এবং ADK ইনস্টল করুন:
uv venv
source .venv/bin/activate
uv sync
  1. আপনার ম্যাপস এপিআই কী সেট করুন। অ্যাপ্লিকেশনটি এটি একটি এনভায়রনমেন্ট ভেরিয়েবল থেকে পড়ে নেয়:
export GOOGLE_MAPS_API_KEY="<YOUR_MAPS_API_KEY>"

পরিবেশ ভেরিয়েবল কনফিগার করুন

সিমুলেটর এজেন্ট কনফিগারেশনের জন্য একটি .env ফাইল ব্যবহার করে। নমুনা ফাইলটি কপি করুন এবং আপনার প্রজেক্ট আইডি দিয়ে এটি আপডেট করুন।

  1. নমুনা পরিবেশ ফাইলটি কপি করুন:
cp planner_agent/sample.env planner_agent/.env
  1. planner_agent/.env খুলুন এবং GOOGLE_CLOUD_PROJECT ফিল্ডটি আপনার আসল Google Cloud Project ID দিয়ে এবং GOOGLE_MAPS_API_KEY ফিল্ডটি আপনার তৈরি করা Google Maps API key দিয়ে আপডেট করুন।

ফাইলটি দেখতে এইরকম হওয়া উচিত:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=<YOUR_PROJECT_ID>
GOOGLE_CLOUD_LOCATION=us-west1
GOOGLE_MAPS_API_KEY=<YOUR_MAPS_API_KEY>
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=true
OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS=true

৪. একটি নতুন ADK এজেন্ট তৈরি করুন

এজেন্টকে সংজ্ঞায়িত করে এমন মূল ফাইলটি অন্বেষণ করুন: planner_agent/agent.py

build-agents-with-skills রিপোজিটরিতে, ADK-এর Agent ক্লাস ব্যবহার করে এজেন্টটিকে ইনিশিয়ালাইজ করা হয়। এটি অন্তর্নিহিত মডেল ও একটি আইডেন্টিটি নেম নির্দিষ্ট করে এবং অন্যান্য মডিউলে সংজ্ঞায়িত নির্দেশাবলী ও টুলগুলো নিয়ে আসে।

প্রারম্ভিক কোডটি পরীক্ষা করার জন্য planner_agent/agent.py ফাইলটি খুলুন:

instruction="Answer user questions to the best of your knowledge"
description="A helpful assistant for user questions."
tools=[]

# ...

root_agent = Agent(
    model='gemini-3-flash-preview',
    name='planner_agent',
    description=description,
    instruction=instruction,
    tools=tools
)

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

এই মুহূর্তে, এজেন্টটি খুবই সাধারণ। আপনি অন্য যেকোনো এলএলএম-এর মতোই এটির সাথে ইন্টারঅ্যাক্ট করতে পারেন।

uv run adk run planner_agent

এই কমান্ডটি এজেন্টের সাথে একটি চ্যাট শুরু করবে। এটি মডেল হিসেবে gemini-3-flash-preview ব্যবহার করে এবং সাধারণ প্রশ্নের উত্তর দিতে পারে।

Running agent planner_agent, type exit to exit.
[user]: What is the length of a Marathon
[planner_agent]: The official length of a marathon is **26.2 miles**, which is
equivalent to **42.195 kilometers**.

এজেন্ট ম্যারাথন সম্পর্কে কিছু তথ্য আগে থেকেই জানেন। তবে, নিয়মকানুন ও পথের পরিকল্পনা সহ একটি যথাযথ ম্যারাথন আয়োজনের জন্য শুধু এটুকুই যথেষ্ট নয়।

৫. একটি সিস্টেম প্রম্পট তৈরি করুন

সিস্টেম প্রম্পট (নির্দেশাবলী) এজেন্টের আচরণ নির্ধারণ করে। একটি বিশাল স্ট্রিংয়ের পরিবর্তে, এই প্রজেক্টটি গতিশীলভাবে নির্দেশাবলী তৈরি করার জন্য একটি PromptBuilder ( planner_agent/utils.py ) ব্যবহার করে।

প্রম্পটটি কীভাবে যৌক্তিক অংশে বিভক্ত করা হয়েছে তা দেখতে planner_agent/prompts.py ফাইলটি খুলুন:

from collections import OrderedDict
from .utils import PromptBuilder

ROLE = """\
...
"""

RULES = """\
...
"""

WORKFLOW = """\
...
"""

###

# Planner instructions with no tools mentioned
PLANNER_INSTRUCTION_NO_TOOLS = PromptBuilder(
    OrderedDict(
        role=ROLE,
        rules=RULES,
        tools=TOOLS_PROMPT_ONLY,
        workflow=WORKFLOW_PROMPT_ONLY,
    )
).build()

# Planner instruction with skills and tools defined
PLANNER_INSTRUCTION = PromptBuilder(
    OrderedDict(
        role=ROLE,
        rules=RULES,
        skills=SKILLS,
        tools=TOOLS,
        workflow=WORKFLOW,
    )
).build()

planner_agent/agent.py তে, এটি ইতিমধ্যেই ইম্পোর্ট করা আছে।

TODO: Replace Instruction and Description লেখা অংশটি খুঁজুন এবং instructiondescription ভেরিয়েবলের পুনঃনির্ধারণের কমেন্টগুলো তুলে দিন।

কোডের ঐ অংশটি দেখতে এইরকম হবে:

instruction=PLANNER_INSTRUCTION_NO_TOOLS
description="Expert GIS analyst for marathon route and event planning."

আপনি এজেন্টের জন্য প্রম্পটের এমন একটি সংস্করণ ইম্পোর্ট করছেন যেখানে কোনো টুলের উল্লেখ নেই। আপনি পরবর্তী ধাপে টুলগুলো যোগ করবেন।

আপনি এজেন্টের এই সংস্করণটি পরীক্ষা করে দেখতে পারেন:

uv run adk run planner_agent

চ্যাট উইন্ডোতে নিম্নলিখিত প্রম্পটটি পাঠান:

Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the
evening timeframe

কিছুক্ষণ পর আপনি এর অনুরূপ একটি প্রতিক্রিয়া পাবেন:

Running agent planner_agent, type exit to exit.
[user]: Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the evening timeframe
[planner_agent]: Here is the comprehensive marathon plan for Las Vegas.

As requested, I have designed this event for an evening start on April 24, 2027. Because certain parameters (theme and budget) were not specified, I have applied pragmatic defaults: this will be a "Neon Nights" scenic theme to capitalize on the evening Strip, operating on a moderate-to-high budget given the infrastructure needed to secure major Las Vegas corridors.

### 1. Intent Alignment
*   **City & Theme:** Las Vegas, Nevada. Theme: "Neon Nights" an evening race maximizing the visual impact of the illuminated city.
*   **Date & Time:** Saturday, April 24, 2027. Late April evenings in Las Vegas offer optimal running weather (temperatures dropping from ~70°F at sunset to ~60°F). Race start is 6:30 PM (sunset is approx. 7:20 PM).
...
...

একটি সুনির্দিষ্ট নির্দেশনার মাধ্যমে আউটপুট ইতিমধ্যেই প্রত্যাশিত ফলাফলের অনেক কাছাকাছি থাকে। পরবর্তী ধাপে, আপনি এজেন্টটিকে পরবর্তী স্তরে নিয়ে যাওয়ার জন্য টুলস যোগ করবেন।

৬. দক্ষতা ও সরঞ্জাম যোগ করুন

planner_agent/agent.py ফাইলে স্কিল এবং টুলস সক্রিয় করতে, TODO: Replaces Tools অংশটি খুঁজুন এবং পরবর্তী দুটি লাইন আনকমেন্ট করুন। আপনার কোডটি দেখতে নিচের মতো হবে:

instruction=PLANNER_INSTRUCTION
tools=get_tools()

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

দক্ষতা

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

ম্যারাথন পরিকল্পনা এজেন্টের জন্য ৩টি দক্ষতা সংজ্ঞায়িত করা হয়েছে:

  1. জিআইএস-স্পেশাল-ইঞ্জিনিয়ারিং - ম্যারাথনের রুট তৈরির জন্য GeoJSON ডেটা প্রক্রিয়াকরণের দায়িত্বে নিয়োজিত।
  2. ম্যাপিং - স্থান অনুসন্ধান এবং আবহাওয়ার তথ্যের জন্য গুগল ম্যাপস-এর টুলগুলো ব্যবহার করুন।
  3. রেস-ডিরেক্টর - ম্যারাথনের রুটটি পরিকল্পনা নির্দেশিকা অনুসরণ করছে কিনা তা যাচাই করুন।

দক্ষতার সাথে স্ক্রিপ্ট, অতিরিক্ত উপকরণ এবং রেফারেন্স থাকতে পারে।

অ্যাপ্লিকেশনটি সমস্ত দক্ষতা লোড করে এবং planner_agent/tools.py ফাইলে সেগুলোকে টুল হিসেবে প্রদান করে। get_tools() ফাংশনে এটি কীভাবে করা হয় তা লক্ষ্য করুন:

def get_tools() -> list:
    """Build the planner's tool list with lazy-loaded skills."""
    from google.adk.code_executors.unsafe_local_code_executor import UnsafeLocalCodeExecutor

    skills_dir = pathlib.Path(__file__).parent / "skills"

    skills = []
    if skills_dir.exists():
        skills = [
            load_skill_from_dir(d)
            for d in sorted(skills_dir.iterdir())
            if d.is_dir() and not d.name.startswith("_") and (d / "SKILL.md").exists()
        ]

    additional_tools = _load_additional_tools(skills_dir)

    skill_toolset = SkillToolset(
        skills=skills,
        code_executor=UnsafeLocalCodeExecutor(),
        additional_tools=additional_tools,
    )

    tools = [
        skill_toolset,
        PreloadMemoryTool(),
    ]

    tools.extend(get_maps_tools())

    return tools

সবচেয়ে আকর্ষণীয় অংশটি হলো ADK-এর ` load_skill_from_dir মেথডটি। ADK-তে স্কিল তৈরি করার আরেকটি উপায় আছে, এবং সেটি হলো ইনলাইন। যদিও এই কোডল্যাবে এটি ব্যবহার করা হয়নি, তবে এটি দেখতে অনেকটা এইরকম:

from google.adk.skills import models

greeting_skill = models.Skill(
    frontmatter=models.Frontmatter(
        name="greeting-skill",
        description=(
            "A friendly greeting skill that can say hello to a specific person."
        ),
    ),
    instructions=(
        "Step 1: Read the 'references/hello_world.txt' file to understand how"
        " to greet the user. Step 2: Return a greeting based on the reference."
    ),
    resources=models.Resources(
        references={
            "hello_world.txt": "Hello! So glad to have you here!",
            "example.md": "This is an example reference.",
        },
    ),
)

ম্যাপিং টুল যোগ করুন

রুট তৈরি করার জন্য ম্যারাথন প্ল্যানারের স্থানিক প্রেক্ষাপট প্রয়োজন। আপনি গুগল ম্যাপস এমসিপি (মডেল কনটেক্সট প্রোটোকল) সার্ভারকে ইন্টিগ্রেট করার মাধ্যমে এটি সরবরাহ করেন।

planner_agent/tools.py ফাইলে লক্ষ্য করুন, ApiRegistry টুলের সাহায্যে MCP সার্ভারটি কীভাবে রেজিস্টার করা হয়েছে:

from google.adk.integrations.api_registry import ApiRegistry

class MapsApiRegistry(ApiRegistry):
    """ApiRegistry subclass that strips ADC headers to force API key auth."""

    def get_toolset(self, *args, **kwargs):  # noqa: ANN002, ANN003
        toolset = super().get_toolset(*args, **kwargs)
        conn = getattr(toolset, "_connection_params", None)
        headers = getattr(conn, "headers", None) if conn else None
        if headers:
            headers.pop("Authorization", None)  # type: ignore[union-attr]
            headers.pop("x-goog-user-project", None)  # type: ignore[union-attr]
        return toolset

def get_maps_tools() -> list:
    """Return Maps MCP toolset if configured."""
    project_id = os.getenv("GOOGLE_CLOUD_PROJECT", "").strip()
    maps_key = _resolve_maps_key()

    if not project_id or not maps_key:
        return []

    # Map the MCP server location on Google Cloud
    mcp_server_name = f"projects/{project_id}/locations/global/mcpServers/google-mapstools.googleapis.com-mcp"
    
    # Initialize the custom API registry that supports header injection
    api_registry = MapsApiRegistry(
        api_registry_project_id=project_id,
        header_provider=header_provider,
    )
    return [api_registry.get_toolset(mcp_server_name=mcp_server_name)]

MCP টুলসেট যোগ করার মাধ্যমে, এজেন্ট স্বয়ংক্রিয়ভাবে গুগল ম্যাপস থেকে রুটিং, উচ্চতা এবং অবস্থানের বিবরণ জানার ক্ষমতা অর্জন করে!

৭. এজেন্টটি স্থানীয়ভাবে চালান

এখন যেহেতু এজেন্ট, প্রম্পট এবং টুলগুলো একসাথে সংযুক্ত করা হয়েছে, এজেন্টটিকে স্থানীয়ভাবে চালান। এবার আপনি adk web ব্যবহার করবেন, যাতে আপনি Skill Load এবং Tool Call ইভেন্টগুলো দেখতে পারেন।

uv run adk web

আপনারও একই রকম কিছু দেখা উচিত।

INFO:     Started server process [99665]
INFO:     Waiting for application startup.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://127.0.0.1:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  1. আপনার ব্রাউজার খুলুন এবং টার্মিনালে দেখানো URL-টিতে যান (সাধারণত http://localhost:8000 )।
  2. উপরের বাম দিকের ড্রপ-ডাউন থেকে planner_agent নির্বাচন করুন।
  3. চ্যাট উইন্ডোতে নিম্নলিখিত প্রম্পটটি পাঠান:
Plan a marathon for 10000 participants in Las Vegas on April 24, 2027 in the
evening timeframe

আপনি দেখবেন স্কিলগুলো লোড হচ্ছে এবং টুলগুলো কল করা হচ্ছে। কিছুক্ষণ পর, এজেন্ট একটি ম্যারাথন প্ল্যান তৈরি করবে।

আপনার UI দেখতে এইরকম হওয়া উচিত:

ADK ওয়েব UI

৮. এজেন্টটি স্থাপন করুন

স্থানীয়ভাবে এজেন্টের কার্যকারিতায় আপনি সন্তুষ্ট হলে, সেটিকে এজেন্ট ইঞ্জিনে স্থাপন করতে পারেন, যা ক্লাউড রান-এ এজেন্টটিকে নিরাপদে হোস্ট করে।

এজেন্টটি ডেপ্লয় করতে, ADK CLI ডেপ্লয়মেন্ট কমান্ডটি ব্যবহার করুন:

uv run adk deploy agent_engine \
  --env_file planner_agent/.env \
  planner_agent

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

আউটপুটটি দেখতে নিম্নলিখিতের মতো:

Files and dependencies resolved
Deploying to agent engine...
✅ Created agent engine: projects/<PROJECT_ID>/locations/us-west1/reasoningEngines/<AGENT_ID>

এজেন্টের সাথে যোগাযোগ করার জন্য আপনি প্রদত্ত পাইথন স্ক্রিপ্টটি ব্যবহার করতে পারেন।

  1. নমুনা পরিবেশ ফাইলটি কপি করুন:
cp sample.env .env
  1. .env খুলুন এবং GOOGLE_CLOUD_PROJECT ফিল্ডটি আপনার আসল গুগল ক্লাউড প্রজেক্ট আইডি দিয়ে আপডেট করুন।

ফাইলটি দেখতে নিম্নলিখিতের মতো হওয়া উচিত:

GOOGLE_CLOUD_PROJECT=<YOUR_PROJECT_ID>
GOOGLE_CLOUD_LOCATION=us-west1
  1. আপনি আপনার প্রকল্পে এজেন্টদের তালিকাভুক্ত করতে পারেন।
python main.py list

আপনারও একই রকম কিছু দেখা উচিত।

Listing deployed agents...

ID: <AGENT_ID> | Display Name: planner_agent

একবার আপনার কাছে ডেপ্লয় করা এজেন্ট আইডি চলে এলে, আপনি একটি প্রম্পট পাঠাতে পারেন:

export AGENT_ID=<AGENT_ID>
python main.py prompt --agent-id ${AGENT_ID} --message "Plan a marathon for
10000 participants in Las Vegas on April 24, 2027 in the evening timeframe"

আপনি নিম্নলিখিতের মতো একটি আউটপুট পাবেন:

Streaming response from agent <AGENT_ID>:

{'model_version': 'gemini-3-flash-preview', 'content': {'parts': [{'text': 'Here is a comprehensive
...
...
...

৯. পরিষ্কার করুন

আপনার গুগল ক্লাউড অ্যাকাউন্টে চলমান চার্জ এড়াতে, এই কোডল্যাব চলাকালীন তৈরি করা রিসোর্সগুলো মুছে ফেলুন।

ডিপ্লয়মেন্ট দ্বারা তৈরি ক্লাউড রান সার্ভিসটি মুছে ফেলুন:

python main.py delete --agent-id ${AGENT_ID}

আপনি যদি সিক্রেট ম্যানেজারে ম্যাপস এপিআই কী সংরক্ষণ করে থাকেন, তাহলে সিক্রেটটি মুছে ফেলুন:

gcloud secrets delete maps-api-key --project=$PROJECT_ID

আপনি যদি এই কোডল্যাবের জন্য একটি নতুন গুগল ক্লাউড প্রজেক্ট তৈরি করে থাকেন, তবে এর সাথে যুক্ত সমস্ত রিসোর্স এবং এপিআই মুছে ফেলার জন্য আপনি সম্পূর্ণ প্রজেক্টটি ডিলিট করে দিতে পারেন:

gcloud projects delete $PROJECT_ID

১০. অভিনন্দন

অভিনন্দন! আপনি ADK ব্যবহার করে একটি অত্যাধুনিক ম্যারাথন প্ল্যানার এজেন্ট তৈরি করেছেন।

আপনি যা শিখেছেন

  • একটি এজেন্ট ডেভেলপমেন্ট কিট (ADK) প্রকল্প শুরু করা হচ্ছে
  • মডিউলার সিস্টেম প্রম্পটের জন্য PromptBuilder ব্যবহার করা
  • MCP টুলস এবং ApiRegistry ব্যবহার করে ম্যাপিং সক্ষমতা একীভূত করা
  • SkillToolset ব্যবহার করে শর্তসাপেক্ষে দক্ষতা লোড করা
  • স্থানীয়ভাবে পরীক্ষা করা এবং এজেন্ট ইঞ্জিনে স্থাপন করা

রেফারেন্স নথি