Skip to content

feat(a2a): FuzeAgent agent-orchestrator serving role (+ role-schema a2a block) - #94

Merged
izzywdev merged 4 commits into
mainfrom
feat/a2a-fuzeagent-serving-role
Jul 23, 2026
Merged

feat(a2a): FuzeAgent agent-orchestrator serving role (+ role-schema a2a block)#94
izzywdev merged 4 commits into
mainfrom
feat/a2a-fuzeagent-serving-role

Conversation

@izzywdev

Copy link
Copy Markdown
Owner

Unblocks the FuzeAgent-first A2A rollout. FuzeAgent had only _base under agent-templates/roles/, so it projected an empty card and couldn't be the first tenant.

Changes

  • agent-templates/roles/agent-orchestrator/role.json — FuzeAgent's serving role: a caller hands over a goal, FuzeAgent dispatches a managed Claude agent to accomplish it and returns the outcome + artifacts (caller needs no agent-runtime knowledge/creds). Carries a2a.examples for discoverability. Not a coordinator, so it projects into the card.
  • agent-templates/schema/role-manifest.schema.json — adds the OPTIONAL a2a property mirroring contracts/a2a/v1/schema/role-a2a-extension.schema.json (the schema follow-on the contract flagged; card_generator.py already reads role.a2a.*). additionalProperties stays false; no existing constraint weakened.

Verified

  • Role validates against the extended schema (jsonschema Draft2020-12).
  • card_generator.py projects agent-orchestrator → a schema-valid AgentSkill (id/name/description/tags/examples) — confirmed by a2a-unit on CI.

Then #93 sets the prod tenant entryRole: agent-orchestrator. Draft — not self-merged.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

izzywdev and others added 2 commits July 23, 2026 17:50
…a block

FuzeAgent had only _base under agent-templates/roles/, so it projected an EMPTY
A2A card and could not be the first tenant. Adds:
- agent-templates/roles/agent-orchestrator/role.json — the serving role (caller hands
  a goal; FuzeAgent dispatches a managed agent and returns the result + artifacts), with
  a2a.examples for discoverability.
- an OPTIONAL `a2a` property on agent-templates/schema/role-manifest.schema.json mirroring
  contracts/a2a/v1/schema/role-a2a-extension.schema.json — the schema follow-on the A2A
  contract flagged (card_generator.py already reads role.a2a.*). additionalProperties stays
  false; no existing constraint weakened.

Unblocks the FuzeAgent-first prod rollout (#93 sets entryRole: agent-orchestrator).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
izzywdev added a commit that referenced this pull request Jul 23, 2026
…ator role (#94)

Only the oidcIssuerUrl placeholder remains owner-supplied; entryRole now points at the
serving role added in #94. Still DRAFT — do not merge until GO-LIVE.md is satisfied.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
izzywdev and others added 2 commits July 23, 2026 18:08
…n a2a-unit paths

- test_repo_cards.py: loads THIS repo's .fuze/manifest.json + agent-templates/roles/
  and asserts generate_cards() yields a schema-valid FuzeAgent card whose skills include
  agent-orchestrator (with examples) and never _base. Guards the actual serving-role set,
  not just fixtures.
- a2a-unit.yml: add agent-templates/roles/** and schema/role-manifest.schema.json to the
  path filters — a role/schema change changes the projected card, so it must run a2a-unit
  (previously it did not, so #94's role addition would have gone unvalidated).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
…res field)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
@izzywdev
izzywdev marked this pull request as ready for review July 23, 2026 15:12
@izzywdev
izzywdev merged commit 0367059 into main Jul 23, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant