
ããªãŒãã³ãœãŒã¹ã ð€ææ°AIãšãŒãžã§ã³ãã®ã³ãŒããå ¬éïŒä»çµã¿ãå®å šè§£èª¬ããŸã
ð«ã¯ããã«
æ±äº¬ã¯äžçäžãã蚪ããæ
è¡è
ã«ãšã£ãŠé
åçãªéœåžã§ããã亀éã·ã¹ãã ã®è€éãã«ã¯èª°ããé©ããããŸããé§
ã®æ°ãè·¯ç·ã®çš®é¡ãä¹ãæãã®å€ããšè€éããŒãŒåå°åããªããã°ããã£ãæ°é§
ã®ç§»åã§ãã倧å€ã ãšæããæ
è¡è
ã¯å®ã¯å°ãªããªãã®ãçŸå®ã§ãã
ããã§ç§ã¯ããšãŒãžã§ã³ãåAIããšããçŸä»£çãªä»çµã¿ã䜿ã£ãŠãæµ·å€ããã®æ
è¡è
åãïŒçŸæç¹ã§ã¯è±èªã®ã¿å¯Ÿå¿ïŒã«éŠéœåã®å
Œ
±äº€éç§»åããµããŒãããããšãæ³å®ããAIã¢ã·ã¹ã¿ã³ããæ§ç¯ããŠã¿ãŸããã
質åã¯èªç¶èšèªã§OKãäŸãã°
ãæ°å®¿ããèæµãŸã§è¡ããããã ãã©ãäžçªè¿ãã«ãŒãã¯ã©ãã§ããïŒã
ãšèãã ãã§ãä¹ãæãæ¡å ãæèŠæéãéè³ãŸã§ã人éã®ããã«çããŠãããŸãã
ä»åã®ãã®Noteèšäºã§ã¯ãAIãã©ã®ããã«ãèãããè¡åããã芳å¯ãããã®ããå®éã®ã³ãŒãç·šæãããžãã¯ã亀ããªãã解説ããŠãããŸããææ°ã®LLM掻çšã«é¢å¿ãããéçºè ã®ããããAIã¯æè¿ã©ããŸã§é²åããŠããã®ãæ°ã«ãªãæ¹ãèªãã§é ããå 容ã«ãªã£ãŠããŸããèšäºã®çµããã«ã¯ãå®éã«è©Šãããšãã§ãããšãŒãžã§ã³ãã®ãªã³ã¯å ãšã³ãŒãã®ã¬ããžããªãŒã匵ãä»ããŠãããŸãã®ã§ãæåŸãŸã§èªãã§ã¿ãŠãã ããã
ð¡ããããããšãŒãžã§ã³ãåAIãã£ãŠãªã«ïŒ
åŸæ¥ã®ãã£ãããããã¯ããŠãŒã¶ãŒã®è³ªåã«å¯ŸããŠå³åº§ã«äžåºŠããã®è§£çãè¿ããäžåäžç圢åŒãåºæ¬ã§ããã
äžæ¹ããšãŒãžã§ã³ãåAIïŒAgentic AIïŒã¯ãããšã¯ç°ãªãããŸãã§äººéã®ããã«ä»¥äžã®ïŒã¹ããããç¹°ãè¿ããªãããåé¡ã解決ããŠãããŸãã
ð Thought â Action â ObservationïŒæè â è¡å â 芳å¯ïŒ
ïŒïŒThoughtïŒæèïŒ
ãŠãŒã¶ãŒã®æå³ããã¿åããã©ã®ãããªã¢ã¯ã·ã§ã³ãå¿
èŠãã倿ããã
äŸïŒããã®äººã¯âæ°å®¿ããèæµâãŸã§ã®ã«ãŒããç¥ããããããã
ïŒïŒActionïŒè¡åïŒ
é©åãªããŒã«ïŒAPIã颿°ïŒãéžã³ãå¿
èŠãªæ
å ±ãååŸ
äŸïŒãé»è»ã«ãŒãæ€çŽ¢ããŒã«ã䜿ã£ãŠãä¹ãæãæ¡å
ãååŸãããã
ïŒïŒObservationïŒèгå¯ïŒ
ååŸããæ
å ±ãåæãããŠãŒã¶ãŒã«ããããããè¿ç
äŸïŒãé»è»ã§35åãéè³420åãä¹ãæãã¯1åããããäžå¯§ã«èª¬æãããã
ãã®ããã«ããšãŒãžã§ã³ãåAIã¯ãå®éã«ããŒã«ãé§äœ¿ããŠæ
å ±ãåãã«è¡ããäºãå¯èœã«ãªããè€éãªåãã«å¯ŸããŠã段éçã«è§£æ±ºçãå°ãåºããã®ãç¹åŸŽã§ãã
ä»åã®ã¢ããªã¯ããŸãã«ãã®ä»çµã¿ãããŒã¹ã«ãæ±äº¬ã®é»è»ç§»åãšããã€ã³ããŠã³ãæ
è¡è
ã«ãšã£ãŠã¯ãªã¢ã«ãªèª²é¡ã«åãçµã圢ã§èšèšããŸããã
ð§ ãã®AIã¯ã©ããã£ãŠåããŠããã®ïŒèšèšãšã¡ã«ããºã ã«ã€ããŠè§£èª¬
ãã®ãšãŒãžã§ã³ãã¢ããªã¯ãææ°ã®ãšãŒãžã§ã³ãåAIã®ã¡ã«ããºã ãæèããŠèšèšããŸããã
äžå¿ãšãªãã®ã¯Hugging Faceãéçºãã軜éãšãŒãžã§ã³ããã¬ãŒã ã¯ãŒã¯ã§ããSmolagentsã§ããããã¯è€éãªãã¬ãŒã ã¯ãŒã¯ã«ãããã¡ãªããã©ãã¯ããã¯ã¹æããæé€ããã·ã³ãã«ãã€éææ§ã®é«ãèšèšã§ã誰ã§ãã«ã¹ã¿ãã€ãºå¯èœãªç¹ãç¹åŸŽã§ãã
ãã®ã¢ããªã§ã¯ã以äžã®äž»èŠã³ã³ããŒãã³ããçµã¿åãããŠããšãŒãžã§ã³ãã®æèã»è¡åã»èгå¯ã«ãŒããå®çŸããŠãããŸããããã°ã©ãã³ã°èšèªã¯Pythonã䜿ã£ãŠãããŸãã
ð§ 1. ã¢ãã«ïŒCodeAgentïŒïŒ è³ã®ãããªååš
ãŸããAIã®ãæèããã倿ããæ
ãã®ã CodeAgent ã§ãã
ããã¯SmolAgentsã®ããŒã¹ã¯ã©ã¹ãç¶æ¿ããã©ã®ããŒã«ã䜿ãããã©ãèããå·¡ãããããã©ãæçµåçããŸãšããããã³ã³ãããŒã«ããåžä»€å¡ã®ãããªååšã§ãã
agent = CodeAgent(
tools=[get_train_route, duck_search],
llm=LiteLLM(model="gemini/gemini-pro"),
system_prompt=prompt_template,
)ãã®ããã«ãCodeAgentã«ã¯ãããŒã«ããã¢ãã«ããããã³ããããæž¡ããŠãããç¶æ³ã«å¿ããŠæè»ã«åããŠãããèšèšã§ãã
ð ïž 2. ããŒã«ïŒtools/ïŒïŒ AIãå®äžçãšã€ãªããææ®µ
ããŒã«ã¯ãAIããè¡åããããšãã«äœ¿ãå®è¡å¯èœãªé¢æ°ãã¡ã§ãã
äŸãã°ããé»è»ã®ã«ãŒããæ¢ãããDuckDuckGoã§æ€çŽ¢ããããšãã£ãåŠçã¯ããã¹ãŠPython颿°ãšããŠã¢ãžã¥ãŒã«åãããŠããŠã@tool ãã³ã¬ãŒã¿ãŒã§ãšãŒãžã§ã³ãã«èªèãããŠããŸãã
@tool
def get_train_route(from_station: str, to_station: str) -> str:
# Yahoo! è·¯ç·æ
å ±ããçµè·¯æ€çŽ¢
...ããŒã«ã¯çŸå®äžçã®APIãããŒã¿ã«ã¢ã¯ã»ã¹ãã圹å²ãæãããŠãããAIããäœããã§ãããããã«ããããã®æ¡åŒµæ©èœã®ãããªãã®ã§ãã
ð§Ÿ 3. ã·ã¹ãã ããã³ããïŒprompts.yamlïŒïŒ AIã®ãäººæ Œããšãèãæ¹ããå®çŸ©
ã¢ãã«ãã©ãæ¯ãèããã¯ãäºåã«äžããã·ã¹ãã ããã³ããã§æ±ºãŸããŸãã
ãã®ã¢ããªã§ã¯ãprompts.yaml ã«ãŠãšãŒãžã§ã³ãã®ãããŒã³ããå¶çŽãã倿ã«ãŒã«ããæç€ºçã«èšè¿°ããŠããŸãã
You are a helpful Tokyo travel assistant.
Always think step-by-step before calling a tool.
If unsure, explain your reasoning.ããã«ãããAIã¯ã芪åãªèгå ã¬ã€ãã®ããã«çãããããšãå¿ãããåžžã«Thought â Action â Observationã®æµãã«æ²¿ã£ãŠåäœããŸãã
ð¶ââïž ãŠãŒã¶ãŒããã®è³ªåã«ã©ãçããŠããã®ïŒæèããã»ã¹ã®æµããèŠãŠã¿ã
ããšãã°ãæµ·å€ããæ¥æ¬ã«æ¥ãæ
è¡è
ããã®ã¢ããªã«ãæ°å®¿ããèæµãŸã§è¡ãããããšèãããšããŸãã
ãã®ãšãããšãŒãžã§ã³ãã¯ä»¥äžã®ãããªã¹ãããã§ãèããªãããçããå°ãåºããŸãã
ð¬ ãŠãŒã¶ãŒå ¥åïŒ
æ°å®¿ããèæµãŸã§è¡ãããã§ããã§ããã°æ©ãçããã«ãŒããç¥ãããã