Skip to content

docs(a2a): update notebook 28 to A2A v1.0 surface#275

Merged
luigisaetta merged 2 commits into
mainfrom
feat/a2a-v1-protocol-compat
May 27, 2026
Merged

docs(a2a): update notebook 28 to A2A v1.0 surface#275
luigisaetta merged 2 commits into
mainfrom
feat/a2a-v1-protocol-compat

Conversation

@fede-kamel
Copy link
Copy Markdown
Contributor

@fede-kamel fede-kamel commented May 27, 2026

Summary

Notebook 28 was still walking through the legacy A2A method names (message/send, tasks/get, tasks/cancel, message/stream) and didn't demonstrate the v1.0 path that A2AClient now defaults to after #272. Refresh the example + mkdocs wrapper:

  • Agent Card output prints protocolVersion and supportedInterfaces.
  • Parts 3 / 4 / 6 / 7 renamed to SendMessage / GetTask / CancelTask / SendStreamingMessage, with a call-out that A2A-Version: 1.0 is the default.
  • New Part 5: ListTasks (v1.0) showing context_id + status paging.
  • New Part 8: legacy fallback using A2AClient(..., protocol_version=None) to exercise the pre-v1.0 method names.
  • docs/notebooks/notebook_28_a2a_protocol.md updated to mirror the same framing.

Follow-up

Test plan

  • LOCUS_MODEL_PROVIDER=mock python examples/notebook_28_a2a_protocol.py — offline path, all 10 parts pass.
  • LOCUS_MODEL_PROVIDER=oci LOCUS_OCI_PROFILE=LUIGI_FRA_API LOCUS_OCI_REGION=us-chicago-1 LOCUS_MODEL_ID=meta.llama-3.3-70b-instruct python examples/notebook_28_a2a_protocol.py — live OCI GenAI, all 10 parts pass.
  • Same with LOCUS_MODEL_ID=openai.gpt-5.5 — all 10 parts pass.
  • TaskNotCancelable (-32002) surfaces on the terminal-task cancel attempt; legacy protocol_version=None fallback also returns completed.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label May 27, 2026
@fede-kamel fede-kamel requested a review from luigisaetta May 27, 2026 06:32
Notebook 28 was still walking through the legacy method names
(message/send, tasks/get, tasks/cancel, message/stream) and didn't
demonstrate the v1.0 path that A2AClient now defaults to. Refresh the
example + mkdocs wrapper:

- Agent Card output now prints protocolVersion and supportedInterfaces.
- Rename Parts 3/4/6/7 to SendMessage / GetTask / CancelTask /
  SendStreamingMessage and call out the A2A-Version: 1.0 default.
- Add a ListTasks (v1.0) section showing context_id + status paging.
- Add a legacy fallback section that constructs an A2AClient with
  protocol_version=None to exercise the pre-v1.0 method names.
- Mirror the same framing in docs/notebooks/notebook_28_a2a_protocol.md.

Verified by running the example end-to-end against live OCI GenAI
(meta.llama-3.3-70b-instruct and openai.gpt-5.5 on LUIGI_FRA_API /
us-chicago-1) - all 10 parts complete with no mocking, including
TaskNotCancelable (-32002) and the legacy fallback path.

Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
@fede-kamel fede-kamel force-pushed the feat/a2a-v1-protocol-compat branch from 098dc6d to abb0916 Compare May 27, 2026 06:48
@fede-kamel fede-kamel changed the title feat(a2a): A2A v1.0 protocol compatibility docs(a2a): update notebook 28 to A2A v1.0 surface May 27, 2026
@luigisaetta
Copy link
Copy Markdown
Contributor

Good catch, @fede-kamel. I missed this NB. I’ll take a closer look at this PR and should be able to complete the review by close of business today, CET.

Copy link
Copy Markdown
Contributor

@luigisaetta luigisaetta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good, all the code is working fine.

Only some small things good to fix, all regarding the numbering of the notebooks:

  1. (line 5) NOB 29 should be NB 28
  2. (line 31) notebook_34_a2a_protocol.py should be notebook_28
  3. (line 94) print("Notebook 29 ...) should be 28

Luigi noticed the example header still said "Notebook 29" in two
places and the docstring run-it line referenced notebook_34. The file
is notebook_28, so align all three references.

- Line 5: docstring title 29 -> 28
- Line 31: run-it path notebook_34 -> notebook_28
- Line 94: print header 29 -> 28

Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
@fede-kamel
Copy link
Copy Markdown
Contributor Author

Thanks @luigisaetta — all three fixed in 4f427b3:

  • line 5: Notebook 29Notebook 28
  • line 31: notebook_34_a2a_protocol.pynotebook_28_a2a_protocol.py
  • line 94: Notebook 29Notebook 28

Copy link
Copy Markdown
Contributor

@luigisaetta luigisaetta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok good to go

Copy link
Copy Markdown
Contributor

@luigisaetta luigisaetta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok ready to merge

Copy link
Copy Markdown
Contributor

@luigisaetta luigisaetta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after the notebook numbering fixes in 4f427b3. CI is green and the A2A notebook changes look good.

@luigisaetta luigisaetta merged commit 2c4f4c7 into main May 27, 2026
10 checks passed
@fede-kamel fede-kamel deleted the feat/a2a-v1-protocol-compat branch May 29, 2026 01:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants