ããã«ã¡ã¯ãDXéçºäºæ¥éšã®æŸæ¬ã§ãã
æ©éã§ããçãããããšãŒãžã§ã³ãéçºããã£ãŠããŸããïŒ
æšå¹Žã®ãšã³ãžãã¢æµè¡èªãšèšã£ãŠãéèšã§ã¯ãªãããšãŒãžã§ã³ãéçºãããã®äžã§ããèããGoogle Agent Development KitïŒADKïŒããçãããè§Šãããã§ããããïŒ
ç§ãADKã䜿çšããŠéçºãããã€ãè¡ã£ãŠããŸããã
ãã®äžã§å
±éããŠã¶ã¡åœãã£ãå£ããã£ãã®ã§ãä»åå匷ãå
ŒããŠèšäºã«ããŸããã
ãŸããPythonã䜿çšããããšãåæãšããŠããã®ã§ãäºæ¿ãã ããðââïž
å ±éããŠåºã課é¡
å
ã»ã©ã話ã«åºãŸãããå
±éããŠåºã課é¡ãã§ããããŸãã¯ãã¡ãã«ã€ããŠã話ãããŸãã
ADKã䜿çšããŠéçºãé²ããã«ããã£ãŠäœåºŠããã®èª²é¡ã«ã¶ã€ãããŸãããïŒçŸåšé²è¡åœ¢ã§ã¶ã€ãã£ãŠããŸãïŒ
éçºããã·ã¹ãã ããšãŒãžã§ã³ãã¯æ§ã
ã§ãããã©ã®éçºã§ã確å®ã«ïŒäŸå€ãªãïŒçµ¶å¯Ÿã«ïŒã¶ã€ãã£ãŠãããŸãããã®èª²é¡ãäœããšèšããŸããšãã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«åé¡ãã§ãã
ADKã䜿çšãããšããããšã¯ããã¡ããè¡ãã®ã¯ããšãŒãžã§ã³ãéçºãã§ãããããŠãã®ãšãŒãžã§ã³ããéçºããéã«ç¡ããŠã¯ãªããªããã®ã¯ãLLMãã§ããããããŠãã®LLMã«é¢ããéšåã§æ¯åã¶ã€ãã£ãŠããŸãâŠð«
ã³ã³ããã¹ããŠã£ã³ããŠãšã¯ïŒ
ããããã³ã³ããã¹ããŠã£ã³ããŠãšã¯äžäœäœïŒãšãªã£ãŠããæ¹ãããã£ããããããããªãã®ã§ãæ¯ãè¿ããå ŒããŠãã³ã³ããã¹ãããšãã³ã³ããã¹ããŠã£ã³ããŠãã«ã€ããŠãŸãšããŸããã
ã³ã³ããã¹ã
ã³ã³ããã¹ããšã¯ãAIãšãŒãžã§ã³ããã¿ã¹ã¯ãå®è¡ããããã«å¿ èŠãªãèæ¯æ å ±ãã®ããšã§ããå ·äœçã«ã¯äžèšã®ãããªãã®ãå«ãŸããŸãã
ã»äŒè©±å±¥æŽïŒãããŸã§ã®ãŠãŒã¶ãŒãšãšãŒãžã§ã³ãã®ããåã ã»ã»ãã·ã§ã³ç¶æ ïŒãŠãŒã¶ãŒã®èšå®ãéå»ã®æ å ± ã»ãšãŒãžã§ã³ãæ å ±ïŒçŸåšå®è¡äžã®ãšãŒãžã§ã³ãã®è©³çް ã»ãµãŒãã¹åç §ïŒã¢ãŒãã£ãã¡ã¯ããã¡ã¢ãªãèªèšŒãªã©ã®æ©èœãžã®ã¢ã¯ã»ã¹
ãšãã£ãæãã§ã人éãäŒè©±ããæã®ããããŸã§ã®ããåããããç¶æ³ãã®ãããªã€ã¡ãŒãžã§ãã
ã³ã³ããã¹ããŠã£ã³ããŠ
ã³ã³ããã¹ããŠã£ã³ããŠã¯ãLLMãäžåºŠã«åŠçã§ããæ å ±ã®ã容éå¶éãã®ããšã§ããæ¬æ£ã«çœ®ããæ¬ã®æ°ã®ãããªã€ã¡ãŒãžã§ãããããã®å®¹éãè¶ ããŠããŸããš
ã»å€ãæ å ±ãåãæšãŠããã ã»ãšã©ãŒãçºçãã ã»ããã©ãŒãã³ã¹ãäœäžãã
ãšãããããªæãã§ãLLMã®ç²ŸåºŠã ãã§ãªãã·ã¹ãã å
šäœã«åœ±é¿ãäžããŠããŸããŸãã
ãã®ããšããAIãšãŒãžã§ã³ãã®ã¿ã¹ã¯ãå®è¡ããæã«ã¯ãã³ã³ããã¹ããŠã£ã³ããŠã«åãŸãããã«ããã³ãããåŠçãæžã蟌ãã§ããå¿
èŠããããŸãã
ãããŠä»åã®ãã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«ããšã¯ããã®ã容éãã«æ å ±ãåãŸããã£ãŠããªãç¶æ ã®ããšã§ãã
ã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«åé¡ã®è§£æ¶
äžèšã§ã³ã³ããã¹ããŠã£ã³ããŠãšã¯äœããããããŸãããã
ãããŠæ¯åç§ã¯ãã®ãã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«ãã«èŠãããããŠããŸãâŠ
ããã³ãããé·ããªã£ãŠããŸã£ããåŠçã现ããããããªã©æ§ã
ãªèŠå ã§ããã®ã³ã³ããã¹ããŠã£ã³ããŠã®å®¹éããªãŒããŒããŠããŸããŸãã
ããããããã¯ADKããã®åé¡ãè§£æ¶ããããã®æ©èœãåãã£ãŠããŸãïŒïŒ
ä»åã¯ãã®ãã¡ã®ïŒã€ã»ã©ãã玹ä»ããŸãïŒ
ïŒã€ç®ïŒã³ã³ããã¹ããã£ãã·ã³ã°
ïŒã€ç®ã¯ver1.15.0ã§ç»å Žãããã³ã³ããã¹ããã£ãã·ã³ã°ãæ©èœã§ãã
ã©ã®ãããªæ©èœããšãããšãLLMãžã®ãªã¯ãšã¹ãã§ç¹°ãè¿ã䜿çšãããéçãªã³ã³ãã³ãïŒããã³ãããããŒã«ã®å®çŸ©ãªã©ïŒããã£ãã·ã³ã°ããïŒåç®ä»¥éã®èªã¿èŸŒã¿éãããŒã¯ã³æ°ãæããããã©ãŒãã³ã¹ãåäžãããæ©èœã§ãã
ãŸãå®è£
æ¹æ³ãšããŠãããªãç°¡åãªã®ã§ãç§ãæ®æ®µãã䜿çšããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ã®èšå®
app = App(
name="cached_app",
root_agent=agent,
context_cache_config=ContextCacheConfig(
min_tokens=4096,
ttl_seconds=600,
cache_intervals=3
)
)ãšãŒãžã§ã³ãã¬ãã«ã§ã®æé©å
agent = LlmAgent(  name="optimized_agent",  static_instruction="You are a helpful assistant.", # éçæç€º  instruction="Current task: {task}" # åçæç€º )
ãã®ããã«ã·ã³ãã«ãªèšèŒã§ããªãã®ããŒã¯ã³æ°ãæããããšãã§ããŸãã
å Žåã«ãã£ãŠã¯ãå
ã
ã®åå以äžã®ããŒã¯ã³ãæããããšãã§ããã®ã§ããã®åŸã®åŠçãããªãã¹ã ãŒãºã«ãªããŸãïŒ
ãããæ°ãã€ããã¹ããšãããšããŠããstatic_instructionãã®èšå®ã ãã§ã¯ãªãããcontext_cache_configãã§æç€ºçãªèšå®ãè¡ãå¿
èŠãããã®ã§ãæ°ãã€ããŠãã ããã
ïŒã€ç®ïŒã³ã³ããã¹ãå§çž®
ïŒã€ç®ã¯ver1.16.0ã§ç»å Žãããã³ã³ããã¹ãå§çž®ãæ©èœã§ãã
ããã¯ãäŒè©±å±¥æŽãé·ããªãéããŠããŸã£ãå Žåã«ãå€ãã€ãã³ããèŠçŽããŠã³ã³ããã¹ããŠã£ã³ããŠã®å¶éå
ã«åããããã®æ©èœã§ãïŒ
å
ã»ã©ã®ãã³ã³ããã¹ããã£ãã·ã³ã°ããšã¯ç°ãªãããã®ååã®éãå§çž®åŠçãè¡ãªã£ãŠãããŸãã
èšå®æ¹æ³
ãRunConfigãã§ãcontext_window_compressionããèšå®ããŸãã
run_config = RunConfig(
context_window_compression=types.ContextWindowCompressionConfig(
trigger_tokens=1000,
sliding_window=types.SlidingWindow(target_tokens=500),
)
)é©çšç®æ
ãã®èšå®ã¯LLMãªã¯ãšã¹ãã«æž¡ãããŸãã
llm_request.live_connect_config.context_window_compression = (
invocation_context.run_config.context_window_compression
)ãã¡ããæ¯èŒçç°¡åã«å®è£
ãã§ãã倧ããªå¹åãåŸãããšãã§ããŸãã
å±¥æŽãé·ããªã£ãŠããŸããããªå¯Ÿè©±åã®ã»ãã·ã§ã³ïŒäž»ã«é·æçãªïŒã«ã¯ããšãŠã广çãªæ©èœã§ãã
ãŸãšã
以äžïŒã€ããä»åç§ãã玹ä»ãããã£ãã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«ã解決ããæ©èœã§ããïŒ
ãããã§ããã§ããããïŒ
ãã¡ãããã以å€ã«ãã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«ã®ããã®å¯Ÿçæ©èœãå®è£
æ¹æ³ãªã©ã¯ããããŸãããä»åã¯ç§ãå®éã«äœ¿çšããŠã¿ãŠãç¹ã«ããŒã¯ã³æ°ãæããããšãã§ãããã®ãã玹ä»ããŸããã
ãšã¯ããããã®æ©èœã䜿çšããŠãããŒã¯ã³æ°ããªãŒããŒããŠã³ã³ããã¹ããŠã£ã³ããŠã®å§è¿«åé¡ãåŒãèµ·ãããŠããŸãã®ã§ãããå¹çã®è¯ãåŠçã»ç°¡æœã§ç確ãªããã³ããã®å®è£
ãæ±ããããŠããŸãã
ãªã®ã§ããããããããããšè©Šè¡é¯èª€ãããããã®æ©èœã掻ãããããã«ãããè¯ãã³ãŒããæžããããé 匵ã£ãŠããããæåã§ãïŒ
ä»åã¯ä»¥äžãšãªããŸãã
ãããŸã§èªãã§ãã ãã£ãŠãããããšãããããŸããïŒ
ã§ã¯çãããè¯ããšãŒãžã§ã³ãéçºãïŒïŒ