
Agent2Agent å ¥é (8) - æ¡åŒµæ©èœ
ãAgent2Agentãã®ããšã¯ã¹ãã³ã·ã§ã³ãã«ã€ããŠãŸãšããŸããã
ã»Extensions
åå
1. ã¯ããã«
ãA2Aãã¯ããšãŒãžã§ã³ãéã®éä¿¡ãå¯èœã«ããå åºãªåºç€ã§ããããããªãããäžéšãã¡ã€ã³ã§ã¯ããããã³ã«ã®æ±çšã¡ãœãããæäŸãã以äžã®æ§é ãå¿ èŠãšãªãããšã¯æããã§ããããããã±ãŒã¹ããµããŒãããããã«ããããã³ã«ã«ãæ¡åŒµæ©èœãã远å ãããŠããŸãããæ¡åŒµæ©èœãã䜿çšããããšã§ããšãŒãžã§ã³ããšã¯ã©ã€ã¢ã³ãã¯ãã³ã¢ãããã³ã«ã®äžã«éãã远å ã®ã«ã¹ã¿ã ããžãã¯ãããŽã·ãšãŒãã§ããŸãã
2. æ¡åŒµæ©èœã®é©çšç¯å²
ãæ¡åŒµæ©èœãã®å ·äœçãªäœ¿ç𿹿³ã¯ãæå³çã«å®çŸ©ãããŠããŸãããããã¯ããæ¡åŒµæ©èœãã䜿çšããããšã§ãçŸåšç¥ãããŠãããŠãŒã¹ã±ãŒã¹ä»¥å€ã«ããA2Aããæ¡åŒµã§ããããã«ããããã§ãããã ãã以äžã®ãããªãŠãŒã¹ã±ãŒã¹ã¯æç¢ºã«äºæž¬å¯èœã§ãã
ã»ãAgentCardãã«æ°ããæ å ±ãå ¬é
ãæ¡åŒµæ©èœãã¯ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãããŒã«å šã圱é¿ãäžããªãå ŽåããããŸãããAgentCardããä»ããŠã¯ã©ã€ã¢ã³ãã«è¿œå ã®æ§é åæ å ±ãäŒéããææ®µãšããŠã®ã¿äœ¿çšã§ããŸãããããããŒã¿ã®ã¿ã®æ¡åŒµæ©èœãšåŒã³ãŸããäŸãã°ãæ¡åŒµæ©èœã«ãã£ãŠããšãŒãžã§ã³ãã® GDPR ã³ã³ãã©ã€ã¢ã³ã¹ã«é¢ããæ§é åããŒã¿ããAgentCardãã«è¿œå ã§ããŸãã
ã»ã³ã¢ã®ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã¡ãã»ãŒãžã«è¿œå ã®æ§é ããã³ç¶æ 倿ŽèŠä»¶ããªãŒããŒã¬ã€
äŸãã°ããæ¡åŒµæ©èœãã«ãã£ãŠããã¹ãŠã®ã¡ãã»ãŒãžã§ç¹å®ã®ã¹ããŒãã«æºæ ãã DataPart ã䜿çšããããšãèŠæ±ã§ããŸãããã®çš®ã®æ¡åŒµæ©èœã¯ãå®è³ªçã«ã³ã¢ A2A ãããã³ã«ã®ãããã¡ã€ã«ãšããŠæ©èœãã蚱容ãããå€ã®ç©ºéãçµã蟌ã¿ãŸããããããããã¡ã€ã«æ¡åŒµæ©èœãšåŒã³ãŸããäŸãã°ããã«ã¹ã±ã¢åéã®æ¡åŒµæ©èœã§ã¯ãæ£è æ å ±ãå«ããã¹ãŠã®ãMessage Partããæå·åããFHIR æšæºã«æºæ ãã DataPart ã«é 眮ããããšã矩åä»ããããšãã§ããŸãã
ã»æ°ãã RPC ã¡ãœãããå®å šã«è¿œå
ãæ¡åŒµæ©èœãã«ãã£ãŠããšãŒãžã§ã³ããã³ã¢ãããã³ã«ã¡ãœããã»ãã以äžã®ãã®ãå®è£ ããããšãå®çŸ©ãããå ŽåããããŸãããããã¡ãœããæ¡åŒµæ©èœãšåŒã³ãŸããããšãã°ããtask-historyãæ¡åŒµæ©èœã§ã¯ã以åã®ã¿ã¹ã¯ã®ãªã¹ããååŸããããã® tasks/search RPC ã¡ãœããã远å ãããããšããããŸãã
ãæ¡åŒµæ©èœãã§ã¯èš±å¯ãããªããããã³ã«ã®å€æŽãããã€ããããŸãã以äžããã®äŸã§ãã
ã»ã³ã¢ããŒã¿æ§é ã®å®çŸ©ã®å€æŽããããã³ã«å®çŸ©ã®ããŒã¿æ§é ãžã®æ°ãããã£ãŒã«ãã®è¿œå ãå¿ é ãã£ãŒã«ãã®åé€ã¯ãµããŒããããŠããŸãããæ¡åŒµæ©èœã¯ãã³ã¢ããŒã¿æ§é ã«ååšããã¡ã¿ããŒã¿ãããã«ã«ã¹ã¿ã 屿§ãé 眮ããããšãæåŸ ãããŠããŸãã
ã»åæåãžã®æ°ããå€ã®è¿œå ã代ããã«ãæ¡åŒµæ©èœã¯æ¢åã®åæå€ã䜿çšããã¡ã¿ããŒã¿ãã£ãŒã«ãã«è¿œå ã®æå³ã泚éä»ãããå¿ èŠããããŸãã
ãããã®å¶éã¯ããæ¡åŒµæ©èœãã«ãã£ãŠã¯ã©ã€ã¢ã³ããšãšãŒãžã§ã³ããå®è¡ããã³ã¢ã¿ã€ãæ€èšŒãå£ããã®ãé²ãããã«ååšããŸãã
3. æ¡åŒµæ©èœã®å®£èš
3-1. æ¡åŒµæ©èœã®å®£èš
ãšãŒãžã§ã³ãã¯ãAgentCapabilities ãªããžã§ã¯ãã« AgentExtension ãªããžã§ã¯ããå«ããããšã§ãAgentCard å ã§æ¡åŒµæ©èœã®ãµããŒãã宣èšããŸãã
ã»uri (string)
æ¡åŒµæ©èœã®URIãããã¯æ¡åŒµæ©èœä»æ§ã§å®çŸ©ãããä»»æã®èå¥åã§ããæ¡åŒµæ©èœã®å®è£ ã§ã¯ããã®URIã䜿çšããŠã¢ã¯ãã£ããŒãããã¿ã€ãã³ã°ãèå¥ããã¯ã©ã€ã¢ã³ãã¯æ¡åŒµæ©èœã®äºææ§ã倿ããããã«ãã®URIã䜿çšããŸãã
ã»required (boolean)
ãšãŒãžã§ã³ããã¯ã©ã€ã¢ã³ãã«ãã®æ¡åŒµæ©èœã®äœ¿çšãèŠæ±ãããã©ããã
ã»description (string)
ãšãŒãžã§ã³ãã宣èšãããæ¡åŒµæ©èœãã©ã®ããã«äœ¿çšãããã説æããŸããæ¡åŒµæ©èœã®è©³çŽ°ã¯æ¡åŒµæ©èœä»æ§ã«èšèŒãããŸãããã®ãã£ãŒã«ãã¯ããšãŒãžã§ã³ããšæ¡åŒµæ©èœã®é¢ä¿ã説æããã®ã«åœ¹ç«ã¡ãŸãã
ã»params (object)
æ¡åŒµæ©èœåºæã®èšå®ããã®ãã£ãŒã«ãã«å ¥åããå€ã¯ãæ¡åŒµæ©èœä»æ§ã«ãã£ãŠå®çŸ©ãããŸãããã®ãã£ãŒã«ãã¯ãæ¡åŒµæ©èœã®ãã©ã¡ãŒã¿ãæå®ãããããšãŒãžã§ã³ãåºæã®è¿œå ããŒã¿ã宣èšãããããããã«äœ¿çšã§ããŸãã
ã»æ¡åŒµæ©èœã衚瀺ãã AgentCard ã®äŸ
{
"name": "Magic 8-ball",
"description": "An agent that can tell your future... maybe.",
"version": "0.1.0",
"url": "https://example.com/agents/eightball",
"capabilities": {
"streaming": true,
"extensions": [
{
"uri": "https://example.com/ext/konami-code/v1",
"description": "Provide cheat codes to unlock new fortunes",
"required": false,
"params": {
"hints": [
"When your sims need extra cash fast",
"You might deny it, but we've seen the evidence of those cows."
]
}
}
]
},
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["text/plain"],
"skills": [
{
"id": "fortune",
"name": "Fortune teller",
"description": "Seek advice from the mystical magic 8-ball",
"tags": ["mystical", "untrustworthy"]
}
]
}3-2. å¿ é æ¡åŒµæ©èœ
ãæ¡åŒµæ©èœãã¯è¿œå æ©èœãå®çŸããææ®µã§ãããäžéšã®ãšãŒãžã§ã³ãã¯ã³ã¢A2Aãããã³ã«ã§è¡šçŸå¯èœãªèŠä»¶ãããå³ããèŠä»¶ãæã€ããšãäºæ³ãããŸããäŸãã°ããšãŒãžã§ã³ãã¯ãã¹ãŠã®åä¿¡ã¡ãã»ãŒãžã«äœæè ã«ããæå·çœ²åãèŠæ±ããå ŽåããããŸããå¿ é ãšå®£èšãããæ¡åŒµæ©èœã¯ããã®ãããªãŠãŒã¹ã±ãŒã¹ããµããŒãããããšãç®çãšããŠããŸãã
ãAgentCardããå¿ é æ¡åŒµæ©èœã宣èšããå Žåãããã¯ã¯ã©ã€ã¢ã³ãã«å¯ŸããŠãæ¡åŒµæ©èœã®äžéšããªã¯ãšã¹ãã®æ§é åã«åœ±é¿ãäžããããšãéç¥ãããã®ã§ãããšãŒãžã§ã³ããžã®ãªã¯ãšã¹ãã®éä¿¡æ¹æ³ã«çŽæ¥åœ±é¿ãäžããªãããããšãŒãžã§ã³ãã¯ããŒã¿ã®ã¿ã®æ¡åŒµæ©èœãå¿ é ãšããŠããŒã¯ãã¹ãã§ã¯ãããŸããã
ãAgentCardããå¿ é æ¡åŒµæ©èœã宣èšããã¯ã©ã€ã¢ã³ãããã®å¿ é æ¡åŒµæ©èœã®æå¹åãèŠæ±ããªãå ŽåããšãŒãžã§ã³ãã¯åä¿¡ãªã¯ãšã¹ããæåŠããé©åãªãšã©ãŒã³ãŒããè¿ãå¿ èŠããããŸãã
ã¯ã©ã€ã¢ã³ããæ¡åŒµæ©èœã®æå¹åãèŠæ±ããããæ¡åŒµæ©èœã§å®çŸ©ããããããã³ã«ã«åŸã£ãŠããªãå ŽåããšãŒãžã§ã³ãã¯ãªã¯ãšã¹ããæåŠããé©åãªæ€èšŒå€±æã¡ãã»ãŒãžãè¿ãå¿ èŠããããŸãã
4. æ¡åŒµæ©èœä»æ§
4-1. æ¡åŒµæ©èœä»æ§
æ¡åŒµæ©èœã®è©³çްã¯ä»æ§ã«ãã£ãŠå®çŸ©ãããŸãããã®ããã¥ã¡ã³ãã®æ£ç¢ºãªåœ¢åŒã¯èŠå®ãããŠããŸããããå°ãªããšã以äžã®å 容ãå«ãŸããŠããå¿ èŠããããŸãã
ã»æ¡åŒµæ©èœã®å®è£ ãèå¥ããã³å¿çããç¹å®ã®URIã仿§æžã®ããŒãžã§ã³ç®¡çãå Žæã®å€æŽã«å¯Ÿå¿ãããããè€æ°ã®URIãåãæ¡åŒµæ©èœãèå¥ããå ŽåããããŸããæ¡åŒµæ©èœã®äœæè ã¯ãURLã®éå¯åãé¿ãããããw3idãªã©ã®æ°žç¶çãªèå¥åãµãŒãã¹ã䜿çšããããšãæšå¥šãããŸãã
ã»ãAgentCardãã§å ¬éãããAgentExtensionãªããžã§ã¯ãã®paramsãã£ãŒã«ãã«æå®ããããªããžã§ã¯ãã®ã¹ããŒããšæå³ã
ã»ã¯ã©ã€ã¢ã³ããšãšãŒãžã§ã³ãéã§éä¿¡ããã远å ã®ããŒã¿æ§é ã®ã¹ããŒãã
ã»æ¡åŒµæ©èœã®å®è£ ã«å¿ èŠãªãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãããŒã远å ã®ãšã³ããã€ã³ãããã®ä»ã®ããžãã¯ã®è©³çްã
4-2. æ¡åŒµæ©èœã®äŸåé¢ä¿
æ¡åŒµæ©èœã¯ä»ã®æ¡åŒµæ©èœã«äŸåããå ŽåããããŸãããã®äŸåé¢ä¿ã¯ãæ¡åŒµæ©èœã®ã³ã¢æ©èœãäŸåããæ¡åŒµæ©èœããªããšå®è¡ã§ããªãå Žåã¯å¿ é ãå¥ã®æ¡åŒµæ©èœãååšãããšè¿œå æ©èœãæå¹ã«ãªãå Žåã¯ãªãã·ã§ã³ãšãªããŸããæ¡åŒµæ©èœã®ä»æ§ã§ã¯ãäŸåé¢ä¿ãšãã®çš®é¡ãææžåããå¿ èŠããããŸãã
äŸåé¢ä¿ã¯ãAgentExtension ãªããžã§ã¯ãå ã§ã¯ãªããæ¡åŒµæ©èœã®ä»æ§å ã§å®£èšãããŸããæ¡åŒµæ©èœã®ä»æ§ã«èšèŒãããŠãããã¹ãŠã®å¿ èŠãªäŸåé¢ä¿ãšæ¡åŒµæ©èœãæå¹åããã®ã¯ãã¯ã©ã€ã¢ã³ãã®è²¬ä»»ã§ãã
5. æ¡åŒµæ©èœã®ã¢ã¯ãã£ããŒã·ã§ã³
æ¡åŒµæ©èœã¯ããã©ã«ãã§éã¢ã¯ãã£ãã«ããå¿ èŠããããŸããããã«ããããããã©ã«ããããŒã¹ã©ã€ã³ãã®ãšã¯ã¹ããªãšã³ã¹ãæäŸãããæ¡åŒµæ©èœãèªèããªãã¯ã©ã€ã¢ã³ãã¯ãæ¡åŒµæ©èœã«ãã£ãŠæäŸããã詳现æ å ±ãããŒã¿ã«ç ©ããããããšã¯ãããŸããã代ããã«ãã¯ã©ã€ã¢ã³ããšãšãŒãžã§ã³ãã¯ããªã¯ãšã¹ãã«å¯ŸããŠã©ã®æ¡åŒµæ©èœãã¢ã¯ãã£ãã§ããããæ±ºå®ããããã®ããŽã·ãšãŒã·ã§ã³ãå®è¡ããŸãããã®ããŽã·ãšãŒã·ã§ã³ã¯ãã¯ã©ã€ã¢ã³ãããšãŒãžã§ã³ããžã®HTTPãªã¯ãšã¹ãã«X-A2A-ExtensionsããããŒãå«ããããšã§éå§ãããŸãããã®ããããŒã®å€ã¯ãã¯ã©ã€ã¢ã³ããã¢ã¯ãã£ããŒãããããšããŠããæ¡åŒµæ©èœURIã®ãªã¹ãã§ããå¿ èŠããããŸãã
ã¯ã©ã€ã¢ã³ãã¯ä»»æã®æ¡åŒµæ©èœã®ã¢ã¯ãã£ããŒã·ã§ã³ãèŠæ±ã§ããŸãããšãŒãžã§ã³ãã¯ããªã¯ãšã¹ãå ã§ãµããŒããããŠããæ¡åŒµæ©èœãèå¥ããã¢ã¯ãã£ããŒã·ã§ã³ãå®è¡ãã責任ããããŸãããšãŒãžã§ã³ãããµããŒãããŠããªãæ¡åŒµæ©èœãèŠæ±ãããå Žåã¯ç¡èŠã§ããŸãã
ãã¹ãŠã®æ¡åŒµæ©èœãã¢ã¯ãã£ããŒãã§ããããã§ã¯ãããŸãããããŒã¿ã®ã¿ã®æ¡åŒµæ©èœã¯ãAgentCardãä»ããŠè¿œå æ å ±ãæäŸããããã ãã«ååšããŸããã¯ã©ã€ã¢ã³ãã¯ãããã®æ¡åŒµæ©èœã®ã¢ã¯ãã£ããŒã·ã§ã³ãèŠæ±ã§ããŸããæ¡åŒµæ©èœã¯ã¢ã¯ãã£ããŒã·ã§ã³æã«è¿œå ã®ããžãã¯ãå®è¡ããªãããããªã¯ãšã¹ãã«ã¯åœ±é¿ããŸããã
äžéšã®æ¡åŒµæ©èœã«ã¯ãã¢ã¯ãã£ããŒã·ã§ã³ã«è¿œå ã®åææ¡ä»¶ãããå ŽåããããŸããäŸãã°ãæ©å¯æ§ã®é«ãæ¡åŒµæ©èœã®äžã«ã¯ããã®æ¡åŒµæ©èœãæå¹åã§ãããŠãŒã¶ãŒãèŠå®ããã¢ã¯ã»ã¹å¶åŸ¡ãªã¹ããååšããå ŽåããããŸããèŠæ±ãããæ¡åŒµæ©èœã®ãã¡ãã©ã®æ¡åŒµæ©èœãæå¹åãããã¯ãšãŒãžã§ã³ããæ±ºå®ããŸãã
ã¯ã©ã€ã¢ã³ããäŸåé¢ä¿ã®ããæ¡åŒµæ©èœã®æå¹åãèŠæ±ããå Žåããã®ã¯ã©ã€ã¢ã³ãã¯äŸåé¢ä¿ã®ããæ¡åŒµæ©èœã®æå¹åãèŠæ±ãããã®èŠä»¶ãéµå®ããå¿ èŠããããŸããã¯ã©ã€ã¢ã³ããèŠæ±ãããæ¡åŒµæ©èœã«å¿ èŠãªäŸåé¢ä¿ããã¹ãŠèŠæ±ããŠããªãå ŽåããµãŒããŒã¯é©åãªãšã©ãŒãè¿ããŠãªã¯ãšã¹ãã倱æãããå¯èœæ§ããããŸãã
ãšãŒãžã§ã³ããæå¹åããããã¹ãŠã®æ¡åŒµæ©èœãç¹å®ããããã¬ã¹ãã³ã¹ã«ã¯æå¹åããããã¹ãŠã®æ¡åŒµæ©èœãèå¥ãã X-A2A-Extensions ããããŒãå«ããå¿ èŠããããŸãã
ã»æ¡åŒµæ©èœã®æå¹åã瀺ããªã¯ãšã¹ãã®äŸ
POST /agents/eightball HTTP/1.1
Host: example.com
Content-Type: application/json
X-A2A-Extensions: https://example.com/ext/konami-code/v1
Content-Length: 519
{
"jsonrpc": "2.0",
"method": "message/send",
"id": "1",
"params": {
"message": {
"kind": "message",
"messageId": "1",
"role": "user",
"parts": [{"kind": "text", "text": "Oh magic 8-ball, will it rain today?"}]
},
"metadata": {
"https://example.com/ext/konami-code/v1/code": "motherlode",
}
}
}ã»ã¢ã¯ãã£ãåãããæ¡åŒµæ©èœãåæ ãã察å¿ããå¿ç
HTTP/1.1 200 OK
Content-Type: application/json
X-A2A-Extensions: https://example.com/ext/konami-code/v1
Content-Length: 338
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"kind": "message",
"messageId": "2",
"role": "agent",
"parts": [{"kind": "text", "text": "That's a bingo!"}],
}
}6. å®è£ ã«é¢ããèæ ®äºé
A2A ãããã³ã«ã¯æ¡åŒµæ©èœã®ãå 容ããå®çŸ©ããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯æ¡åŒµæ©èœã®å®è£ ã®äœæãããŒãžã§ã³ç®¡çãé åžã«é¢ãããã¹ããã©ã¯ãã£ã¹ã§ãããæ¹æ³ãã«é¢ããã¬ã€ãã³ã¹ãæäŸããŸãã
6-1. ããŒãžã§ã³ç®¡ç
æ¡åŒµæ©èœã®ä»æ§ã¯å¿ ç¶çã«é²åããŸããã¯ã©ã€ã¢ã³ããšãšãŒãžã§ã³ããäºææ§ã®ããå®è£ ãããŽã·ãšãŒãã§ããããã«ããããã«ãæç¢ºãªããŒãžã§ã³ç®¡çæŠç¥ãçå®ããããšãéèŠã§ãã
ã»æšå¥šäºé
æ¡åŒµæ©èœã®URIãäž»èŠãªããŒãžã§ã³èå¥åãšããŠäœ¿çšããŠãã ãããhttps://example.com/ext/my-extension/v1 ã https://example.com/ext/my-extension/v2 ã®ããã«ãURIãã¹ã«ããŒãžã§ã³çªå·ãçŽæ¥å«ããããšããå§ãããŸãã
ã»äºææ§ã®ãªã倿Ž
æ¡åŒµæ©èœã®ããžãã¯ãããŒã¿æ§é ããŸãã¯å¿ é ãã©ã¡ãŒã¿ã«äºææ§ã®ãªã倿Žãå ããå Žåã¯ãæ°ããURIã䜿çšããå¿ èŠããããŸããããã«ãããææ§ããåé¿ããã/v1ããµããŒããããšãŒãžã§ã³ãã/v2ãªã¯ãšã¹ãã誀ã£ãŠåŠçããããšããªããªããŸãã
ã»äžäžèŽã®åŠç
ã¯ã©ã€ã¢ã³ãããšãŒãžã§ã³ãããµããŒãããŠããªãæ¡åŒµæ©èœã®ããŒãžã§ã³ãèŠæ±ããå ŽåïŒäŸ: ã¯ã©ã€ã¢ã³ãã/v2ãèŠæ±ãããããšãŒãžã§ã³ãã/v1ã®ã¿ããµããŒãããŠããå ŽåïŒããšãŒãžã§ã³ãã¯ãã®æ¡åŒµæ©èœã®ã¢ã¯ãã£ããŒã·ã§ã³èŠæ±ãç¡èŠããå¿ èŠããããŸãïŒSHOULDïŒãã¯ã©ã€ã¢ã³ãã®ããžãã¯ã¯èŠæ±ãããããŒãžã§ã³ã«æç€ºçã«çµã³ä»ããããŠããããããšãŒãžã§ã³ãã¯å¥ã®ããŒãžã§ã³ãžã®ããã©ãŒã«ããã¯ãã詊ã¿ãŠã¯ãããŸããïŒMUST NOTïŒã
6-2. çºèŠå¯èœæ§ãšå ¬é
æ¡åŒµæ©èœãæçšã§ããããã«ã¯ãä»ã®éçºè ããã®ä»æ§ãèŠã€ããäœ¿ãæ¹ãçè§£ã§ããå¿ èŠããããŸãã
ã»ä»æ§ã®ãã¹ãã£ã³ã°
æ¡åŒµæ©èœã®ä»æ§æžã¯ãæ¡åŒµæ©èœã®URIã§ãã¹ãã£ã³ã°ãããã¹ãã§ããããã«ãããéçºè ã¯èå¥åã解決ããã ãã§ç°¡åã«ããã¥ã¡ã³ãã«ã¢ã¯ã»ã¹ã§ããŸãã
ã»æ°žç¶çãªèå¥å
ãªã³ã¯åãããã¡ã€ã³å€æŽã«ããåé¡ãé²ããããéçºè ã¯æ¡åŒµæ©èœã®URIã«w3id.orgãªã©ã®æ°žç¶çãªèå¥åãµãŒãã¹ã䜿çšããããšãæšå¥šãããŸãã
ã»ã³ãã¥ããã£ã¬ãžã¹ã㪠(å°æ¥)
å°æ¥ãA2Aã³ãã¥ããã£ã¯å©çšå¯èœãªæ¡åŒµæ©èœãçºèŠããã³é²èЧããããã®äžå€®ã¬ãžã¹ããªãèšç«ããå¯èœæ§ããããŸãã
6-3. ããã±ãŒãžã³ã°ãšåå©çšæ§
å°å ¥ãä¿é²ããããã«ãæ¡åŒµæ©èœã®ããžãã¯ã¯ãæ¢åã® A2A ã¯ã©ã€ã¢ã³ãããã³ãµãŒããŒã¢ããªã±ãŒã·ã§ã³ã«ç°¡åã«çµ±åã§ããåå©çšå¯èœãªã©ã€ãã©ãªã«ããã±ãŒãžåããå¿ èŠããããŸãã
ã»é åž
æ¡åŒµæ©èœã®å®è£ ã¯ããã®èšèªãšã³ã·ã¹ãã ã®æšæºããã±ãŒãžãšããŠé åžããå¿ èŠããããŸãïŒäŸïŒPython ã®å Žå㯠PyPI ããã±ãŒãžãTypeScript/JavaScript ã®å Žå㯠npm ããã±ãŒãžïŒã
ã»çµ±åã®ç°¡çŽ å
éçºè ã«ãšã£ãŠã»ãŒããã©ã°ã¢ã³ããã¬ã€ãã®ãšã¯ã¹ããªãšã³ã¹ãæäŸããããšãç®æããŸããé©åã«èšèšãããæ¡åŒµæ©èœããã±ãŒãžã¯ãéçºè ãæå°éã®ã³ãŒãã§ãµãŒããŒã«è¿œå ã§ãããã®ã§ãªããã°ãªããŸãããäŸãã°ã次ã®ãããªãã®ã§ãã
# Hypothetical Python Server Integration
from konami_code_extension import CheatCodeHandler
from a2a.server import A2AServer, DefaultRequestHandler
# The extension hooks into the request handler to process its logic
extension = CheatCodeHandler(description="")
extension.add_cheat(
code="motherlode",
hint="When your sims need extra cash fast",
)
extension.add_cheat(
code="thereisnocowlevel",
hint="You might deny it, but we've seen the evidence of those cows.",
)
request_handler = DefaultRequestHandler(
agent_executor=MyAgentExecutor(extension),
task_store=InMemoryTaskStore(),
extensions=[extension]
)
server = A2AServer(agent_card, request_handler)
server.run()6-4. ã»ãã¥ãªãã£
æ¡åŒµæ©èœã¯A2Aãããã³ã«ã®ã³ã¢åäœã倿Žãããããæ°ããªã»ãã¥ãªãã£äžã®èæ ®äºé ãçããŸãã
ã»å ¥åæ€èšŒ
æ¡åŒµæ©èœã«ãã£ãŠå°å ¥ãããæ°ããããŒã¿ãã£ãŒã«ãããã©ã¡ãŒã¿ããŸãã¯ã¡ãœããã¯ãå®è£ ã«ãã£ãŠå³å¯ã«æ€èšŒãããªããã°ãªããŸããïŒMUSTïŒããããã³ã«ã§å®çŸ©ãããä¿¡é Œã確ç«ããææ®µããªãéããå€éšããã®æ¡åŒµæ©èœé¢é£ããŒã¿ã¯ãã¹ãŠãä¿¡é Œã§ããªãå ¥åãšããŠæ±ã£ãŠãã ããã
ã»å¿ é æ¡åŒµæ©èœã®é©çšç¯å²
AgentCardã§æ¡åŒµæ©èœããå¿ é : trueããšããŒã¯ããéã«ã¯æ³šæãå¿ èŠã§ããããã¯ããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«åŒ·ãäŸåé¢ä¿ãäœæããŸãããã®èšå®ã¯ããšãŒãžã§ã³ãã®ã³ã¢æ©èœãšã»ãã¥ãªãã£äœå¶ã«äžå¯æ¬ ãªæ¡åŒµæ©èœ (äŸ : ã¡ãã»ãŒãžçœ²åæ¡åŒµæ©èœ) ã«ã®ã¿äœ¿çšããŠãã ããã
ã»èªèšŒãšèªå¯
æ¡åŒµæ©èœã«ãã£ãŠæ°ããã¡ãœããã远å ãããå Žåãå®è£ ã¯ãããã®ã¡ãœãããã³ã¢A2Aã¡ãœãããšåãèªèšŒããã³èªå¯ãã§ãã¯ã®å¯Ÿè±¡ãšãªãããšãä¿èšŒããªããã°ãªããŸãã (MUST)ãæ¡åŒµæ©èœã¯ããšãŒãžã§ã³ãã®äž»èŠãªã»ãã¥ãªãã£å¶åŸ¡ããã€ãã¹ããæ¹æ³ãæäŸããŠã¯ãªããŸããïŒMUST NOTïŒã