docs(a2a): A2A client guide, configuration and Telegram notes
This commit is contained in:
@@ -208,3 +208,20 @@ reference) so the host's copy is used at runtime.
|
||||
|
||||
Activation or load failures are recorded (`AgentSession.ExtensionErrors`) and logged; other extensions still
|
||||
load.
|
||||
|
||||
## Feature extensions in this repository
|
||||
|
||||
Besides the providers ([providers](providers.md), [claude-code-provider.md](claude-code-provider.md)), `extensions/`
|
||||
holds feature extensions built on this API only: `Mcp` ([mcp.md](mcp.md)), `GoogleCalendar`
|
||||
([google-calendar.md](google-calendar.md)), `Scheduler` ([telegram-bot.md](telegram-bot.md#scheduling)) and `A2A`.
|
||||
|
||||
`Volcanic.AgenticCore.Extensions.A2A` is the A2A client ([a2a.md](a2a.md#client)): `A2AClientExtension(settings,
|
||||
target, registry)` registers the `a2a` tool (`agents`, `send`, `status`, `cancel` over the session's
|
||||
`.volcanic/a2a/agents.json`), keeps the inbound hop count from the `a2a.inbound` event, and on `SessionStartEvent`
|
||||
attaches the session for live delivery and flushes results kept for its target. It is meant to be added per session
|
||||
by the host (`AgentSessionOptions.ExtraExtensions`, as the Telegram host does for each chat), not host-wide. Long
|
||||
remote tasks go to the process-wide `A2AWatchRegistry`, which follows them by push, subscribe or poll, persists them
|
||||
in `.volcanic/a2a/pending.json` and hands results to an `IA2AResultDelivery`: by default the target's live session
|
||||
(`SendUserMessage` as a follow-up), or the host's own (`registry.UseDelivery(...)`, then `RestoreAsync` at startup and
|
||||
`StopAsync` at shutdown). A host with an A2A server routes `A2AHostOptions.OnPush` to `registry.OnPushAsync` and sets
|
||||
`A2AClientSettings.PushBaseUrl` to the server's public URL.
|
||||
|
||||
Reference in New Issue
Block a user