Google�́A�}���`AI�G�[�W�F���g�V�X�e���ɂ�����8�̊�{�I�ȃf�U�C���p�^�[���������u���O�ʼn�������B
���̋L���͉������ł��B����o�^�i�����j����ƑS�Ă������������܂��B
�@Google��2025�N12��16���i�č����ԁj�Ɍ����u���O�ŁA�}���`AI�i�l�H�m�\�j�G�[�W�F���g��8�̊�{�I�ȃf�U�C���p�^�[������������B
�@Google�́u���m���V�b�N�A�v���P�[�V�������X�P�[���u���ł͂Ȃ��悤�ɁA�P���AI�G�[�W�F���g�́w��p�n�R�x�Ɋׂ�v�Ƃ��A�}���`�G�[�W�F���g�V�X�e���𗘗p���闘�_�́A�u�}�C�N���T�[�r�X�A�[�L�e�N�`����AI�ł��\�z���邱�ƂŁA���U���Ɛ�剻�ɂ��M�����������ł��邱�Ɓv�������Ă���B
�@�u�p�[�T�i��͊�j�A�N���e�B�b�N�i��]�Ɓj�A�f�B�X�p�b�`���[�i���z�ҁj�Ƃ���������̖������X�̃G�[�W�F���g�Ɋ��蓖�Ă邱�ƂŁA�{���I�Ƀ��W���[��������A���؉\�ŐM�����̍����V�X�e�����\�z�ł���v�iGoogle�j
�@Google�́A8�̃}���`�G�[�W�F���g�f�U�C���p�^�[���ɂ��āA�I�[�v���\�[�X��AI�G�[�W�F���g�J���^�f�v���C�t���[�����[�N�uAgent Development Kit�v�iADK�j��Python��p�����^���R�[�h�ƕ����Ď��̂悤�ɏЉ�Ă���B
�@�G�[�W�F���g���[�N�t���[�̊�{���̊�{�ł���A�f�[�^�����p�C�v���C���̒�ԃA�[�L�e�N�`�����B
�@�ÓT�I�ȑg�ݗ��ă��C���̂悤�ɁA�G�[�W�F���gA���^�X�N���������A���̃o�g�����G�[�W�F���gB�ɒ��ړn���B�����I�Ō���_�I�ł���A�f�[�^�̏o�ǂ��낪��ɖ��m�Ȃ��߁A���Ƀf�o�b�O�����₷���B
�@�ȉ��̗�́A���̃h�L�������g�̏����t���[�������Ă���B�uParser�v�i��́j�G�[�W�F���g��PDF���e�L�X�g�ɕϊ����A�uExtractor�v�i���o�j�G�[�W�F���g���\�����f�[�^�𒊏o���A�uSummarizer�v�i�v��j�G�[�W�F���g���ŏI�I�ȗv�������B
# ADK Pseudocode
# Step 1: Parse the PDF
parser = LlmAgent(
name="ParserAgent",
instruction="Parse raw PDF and extract text.",
tools=[PDFParser],
output_key="raw_text"
)
# Step 2: Extract structured data
extractor = LlmAgent(
name="ExtractorAgent",
instruction="Extract structured data from {raw_text}.",
tools=[RegexExtractor],
output_key="structured_data"
)
# Step 3: Summarize
summarizer = LlmAgent(
name="SummarizerAgent",
instruction="Generate summary from {structured_data}.",
tools=[SummaryEngine]
)
# Orchestrate the Assembly Line
pipeline = SequentialAgent(
name="PDFProcessingPipeline",
sub_agents=[parser, extractor, summarizer]
)
�@�`�F�[���i�A���j�ł͂Ȃ��A�ӎv����҂��K�v�ȏꍇ������B���̃p�^�[���ł́A�����̃C���e���W�F���g�G�[�W�F���g���f�B�X�p�b�`���[�i���z�ҁj�Ƃ��ċ@�\����B
�@���[�U�[�̈Ӑ}�͂��A�w�����ꂽ�^�X�N�ɍœK�Ȑ��G�[�W�F���g�Ƀ��N�G�X�g��U�蕪����B
�@����́A���̐}�̂悤�ɁA�������Ɋւ�����Ȃ�uBilling�v�i�����j���G�[�W�F���g�ցA�g���u���V���[�e�B���O�Ȃ�uTech Support�v�i�e�N�j�J���T�|�[�g�j���G�[�W�F���g�ցA���[�U�[��U������K�v������悤�ȁA���G�Ȍڋq�T�[�r�X�ɓK���Ă���Ƃ����B
# ADK Pseudocode
billing_specialist = LlmAgent(
name="BillingSpecialist",
description="Handles billing inquiries and invoices.",
tools=[BillingSystemDB]
)
tech_support = LlmAgent(
name="TechSupportSpecialist",
description="Troubleshoots technical issues.",
tools=[DiagnosticTool]
)
# The Coordinator (Dispatcher)
coordinator = LlmAgent(
name="CoordinatorAgent",
# The instructions guide the routing logic
instruction="Analyze user intent. Route billing issues to BillingSpecialist and bugs to TechSupportSpecialist.",
sub_agents=[billing_specialist, tech_support]
)
�@�݂��Ɉˑ����Ȃ������̃^�X�N������ꍇ�A������������s����K�v�͂Ȃ��B���̃p�^�[���ł́A�����̃G�[�W�F���g���^�X�N���Ɏ��s���A���C�e���V�i�x���j��Z�k������A���l�Ȏ��_���肷��B���̌�A�uSynthesizer�v�i�����j�G�[�W�F���g���o�͂��W��B
�@����́A�����R�[�h���r���[�Ȃǂɗ��z�I���B���ԂɃ`�F�b�N���s���̂ł͂Ȃ��A�uSecurity Auditor�v�i�Z�L�����e�B�č��j�A�uStyle Enforcer�v�i�X�^�C�������j�A�uPerformance Analyst�v�i�p�t�H�[�}���X���́j�̊e�G�[�W�F���g���ɋN�����A�v�����N�G�X�g�����r���[�����邱�Ƃ��ł���B�S�G�[�W�F���g�����r���[������������A�uSynthesizer�v�i�����j�G�[�W�F���g�������̃t�B�[�h�o�b�N���܂Ƃ߂āA1�̃��r���[�R�����g���쐬����B
# ADK Pseudocode
# Define parallel workers
security_scanner = LlmAgent(
name="SecurityAuditor",
instruction="Check for vulnerabilities like injection attacks.",
output_key="security_report"
)
style_checker = LlmAgent(
name="StyleEnforcer",
instruction="Check for PEP8 compliance and formatting issues.",
output_key="style_report"
)
complexity_analyzer = LlmAgent(
name="PerformanceAnalyst",
instruction="Analyze time complexity and resource usage.",
output_key="performance_report"
)
# Fan-out (The Swarm)
parallel_reviews = ParallelAgent(
name="CodeReviewSwarm",
sub_agents=[security_scanner, style_checker, complexity_analyzer]
)
# Gather/Synthesize
pr_summarizer = LlmAgent(
name="PRSummarizer",
instruction="Create a consolidated Pull Request review using {security_report}, {style_report}, and {performance_report}."
)
# Wrap in a sequence
workflow = SequentialAgent(sub_agents=[parallel_reviews, pr_summarizer])
�@�^�X�N���傫�����āA1�̃G�[�W�F���g�̃R���e�L�X�g�E�B���h�E�Ɏ��܂�Ȃ����Ƃ�����B��ʃG�[�W�F���g�́A���G�ȖڕW���T�u�^�X�N�ɕ������A�������ϔC�ł���B�U�蕪���p�^�[���Ƃ͈قȂ�A�e�G�[�W�F���g�̓^�X�N�̈ꕔ�������ϔC���A���̌��ʂ�҂��Ă��玩�g�̐��_���p������ꍇ������B
�@���̐}�́uReportWriter�v�i���|�[�g�쐬�ҁj�́A���g�ł̓��T�[�`���s��Ȃ��B�uResearchAssistant�v�i���T�[�`�A�V�X�^���g�j�ɈϔC���A�����ResearchAssistant�́A�uWebSearch�v�iWeb�����j����сuSummarizer�v�i�v��j�c�[�����Ǘ����Ă���B
# ADK Pseudocode
# Level 3: Tool Agents
web_searcher = LlmAgent(name="WebSearchAgent", description="Searches web for facts.")
summarizer = LlmAgent(name="SummarizerAgent", description="Condenses text.")
# Level 2: Coordinator Agent
research_assistant = LlmAgent(
name="ResearchAssistant",
description="Finds and summarizes info.",
# Coordinator manages the tool agents
sub_agents=[web_searcher, summarizer]
)
# Level 1: Top-Level Agent
report_writer = LlmAgent(
name="ReportWriter",
instruction="Write a comprehensive report on AI trends. Use the ResearchAssistant to gather info.",
# Wrap the sub-agent hierarchy as a tool for the parent
tools=[AgentTool(research_assistant)]
)
�@���i���ŐM�����̍����o�͂�����ɂ́A�����̏ꍇ�A��O�҂̖ڂ��K�v���B���̃p�^�[���ł́A�R���e���c�̍쐬�ƌ�������B����̃G�[�W�F���g���uGenerator�v�i�����ҁj�Ƃ��ăh���t�g�i�������j���쐬���A����������uCritic�v�i��]�Ɓj�Ƃ��āA�n�[�h�R�[�h���ꂽ���_���`�F�b�N�Ɋ�Â��Ă�������r���[����B
�@���̃A�[�L�e�N�`���̓����́A�����t�����[�v�ɂ���B���r���[�ɍ��i����A���[�v���A�R���e���c���m�肷��B���i���Ȃ������ꍇ�́A��̓I�ȃt�B�[�h�o�b�N��Generator�ɖ߂���AGenerator�͊�����h���t�g������B����́A�\���`�F�b�N���K�v�ȃR�[�h������A�R���v���C�A���X���r���[���K�v�ȃR���e���c�쐬�ɔ��ɗL�p���B
# ADK Pseudocode
# The Generator
generator = LlmAgent(
name="Generator",
instruction="Generate a SQL query. If you receive {feedback}, fix the errors and generate again.",
output_key="draft"
)
# The Critic
critic = LlmAgent(
name="Critic",
instruction="Check if {draft} is valid SQL. If correct, output 'PASS'. If not, output error details.",
output_key="feedback"
)
# The Loop
loop = LoopAgent(
name="ValidationLoop",
sub_agents=[generator, critic],
condition_key="feedback",
exit_condition="PASS"
)
�@�h���t�g��1�����������ŁA�D�ꂽ���ʕ����������邱�Ƃ͂܂ꂾ�B�l�Ԃ̍�Ƃ����e�𐄝ȁi���������j���A�����グ�A�ҏW����悤�ɁA�G�[�W�F���g���A�����𐳊m�ɂ��邽�߂ɐ���̎��s���K�v�ȏꍇ������B���̃p�^�[���ł́A�o�͂�����̕i����ɒB����܂ŁA�����A��]�A���ǂ̃T�C�N�����J��Ԃ��B
�@�����҂Ɣ�]�ƃp�^�[��������i���i�^�s���i�j�ɏœ_�Ă�̂ɑ��A���̃p�^�[���͎��I�ȉ��P�ɏœ_�Ă�B
�@�uGenerator�v�i�����ҁj�G�[�W�F���g���e���h���t�g���쐬���A�uCritique�v�i��]�Ɓj�G�[�W�F���g���œK���̂��߂̎w�E���s���A�uRefinement�v�i���ǁj�G�[�W�F���g�������̎w�E�Ɋ�Â��ďo�͂��グ��B
# ADK Pseudocode
# Generator
generator = LlmAgent(
name="Generator",
instruction="Generate an initial rough draft.",
output_key="current_draft"
)
# Critique Agent
critic = LlmAgent(
name="Critic",
instruction="Review {current_draft}. List ways to optimize it for performance.",
output_key="critique_notes"
)
# Refiner Agent
refiner = LlmAgent(
name="Refiner",
instruction="Read {current_draft} and {critique_notes}. Rewrite the draft to be more efficient.",
output_key="current_draft" # Overwrites the draft with better version
)
# The Loop (Critique -> Refine)
loop = LoopAgent(
name="RefinementLoop",
max_iterations=3,
sub_agents=[critic, refiner]
)
# Complete Workflow
workflow = SequentialAgent(sub_agents=[generator, loop])
�@AI�G�[�W�F���g�͋��͂����A�d�v�Ȉӎv����ɂ͐l�Ԃ�������Ȃ���Ȃ�Ȃ��B���̃p�^�[���ł́A�G�[�W�F���g����b�I�ȍ�Ƃ��s�����A�d��ȍs���i���ɁA�s�t�I�ȍs����A�d��Ȍ��ʂ��s���j�ɂ��ẮA�l�Ԃ����F����K�v������B���S���Ɛ����ӔC���m�ۂ��邽�߂��B�����̍s���ɂ́A���Z����̎��s�A�{�Ԋ��ւ̃R�[�h�f�v���C�A�@���f�[�^�Ɋ�Â��s���Ȃǂ��܂܂��B
�@���̐}�́A�uTransaction�v�i�g�����U�N�V�����j�G�[�W�F���g������Ɩ�����������l�q�������B�d��ȃ`�F�b�N���K�v�ɂȂ�ƁA�uApprovalTool�v�i���F�c�[���j�G�[�W�F���g���Ăяo���A���s���ꎞ��~���āA�l�Ԃ̃��r���[�S���҂�����f����̂�҂B
# ADK Pseudocode
transaction_agent = LlmAgent(
name="TransactionAgent",
instruction="Handle routine processing. If high stakes, call ApprovalTool.",
tools=[ApprovalTool]
)
approval_agent = LlmAgent(
name="ApprovalToolAgent",
instruction="Pause execution and request human input."
)
workflow = SequentialAgent(sub_agents=[transaction_agent, approval_agent])
�@�{�ԃO���[�h�̃A�v���P�[�V�������\�z����ɂ́A�����̃p�^�[����g�ݍ��킹��K�v�����邾�낤�B
�@�Ⴆ�A���̌��S�i����낤�j�Ȍڋq�T�|�[�g�V�X�e���ł́A���N�G�X�g�̐U�蕪���ɁuCoordinator�v�i�R�[�f�B�l�[�^�[�j���g�p����B
�@���[�U�[���Z�p�I�Ȗ�������Ă���ꍇ�A�uDocs Search�v�i���������j�ƁuUser History�v�i���[�U�[�����j�̊e�G�[�W�F���g�������ɋN������A�������s�ŏ������s���B�ŏI�I�ȉ́A���[�U�[�ɑ��M�����O�ɁA�g�[���̈�ѐ����m�ۂ��邽�߂ɁA�uGenerator�v�i�����ҁj�ƁuCritic�v�i��]�Ɓj�̃��[�v��ʉ߂���\��������B
�m�[�R�[�h�ŋƖ�������AI�G�[�W�F���g���쐬�ł���uGoogle Workspace Studio�v�J�n
Google�AAI��UI�������������鎞��ɔ������v���g�R���uA2UI�v���I�[�v���\�[�X���@�ǂ̂悤�Ȏd�g�݂Ȃ̂��H
����AI�́g�g���h����g���h�ց@���O�\�z��I�Ԃׂ����R�Ɓu��{�̌^�v�Ƃ�Copyright © ITmedia, Inc. All Rights Reserved.
��IT eBook