[Bug]: AgentCard REQUIRED fields are never validated

已關閉
#1,267 0 則留言 0 個 reaction 已指派 1 人 在 GitHub 檢視

維護者通常 2 天內回覆

@mykytanetipa 已經在處理了。

開始於 2026年9月22日。

  • #1279 來自 @Patrick-SCH03 —— 未關閉

評估

這個 Issue 還沒有評估資料。

描述

maintainers-only
What happened?

AgentCard marks 8 fields field_behavior = REQUIRED (https://github.com/a2aproject/A2A/blob/main/specification/a2a.proto#L362-L399): name, description, supported_interfaces, version, capabilities, default_input_modes, default_output_modes, skills.

Nothing in the SDK checks them. proto3 has no required keyword and the annotation is inert metadata, so an empty card is constructible and travels the whole pipeline unchallenged:

AgentCard()   # -> served as HTTP 200 with body {}

None of the methods that accept a card validate it:

  • create_agent_card_routes(agent_card=...)
  • DefaultRequestHandler(agent_card=..., extended_agent_card=...) and on_get_extended_agent_card — validates the request, never the returned card
  • agent_card_to_dict(card)
  • signing

Correct fix: call the existing validate_proto_required_fields where the card is passed. This would introduce breaking changes for clients that rely on non-spec compliant agent card.

Suggested first step: log a warning when validation fails rather than raising, which is non-breaking and surfaces the problem to the user, with enforcement by default deferred to a major version.

Relevant log output

Code of Conduct
  • I agree to follow this project's Code of Conduct
主要語言
Python
星號
2.2k
分支
532
平均合併
3 天 6 小時
30 天內合併 PR
42

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

a2aproject/a2a-python 的其他 Issue

查看 a2aproject/a2a-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。