🤖 👥 Agent Teams
The Datalayer orchestration extension
agent_teams.a2a (Python) and @datalayer/agent-teams (TypeScript)
implement the Datalayer orchestration
extension — an optional
A2A extension that lets a worker and an orchestrator say the things about
delegated work that A2A leaves unsaid: which execution a delegation is
part of and where it sits in its tree, a budget to decline before
exceeding, a checkpoint to resume from, and instructions delivered to a
turn already in progress.
from agent_teams.a2a import ExecutionRef, build_delegation_meta
meta = build_delegation_meta(
ExecutionRef(execution_id="exec_1", root_execution_id="exec_1", depth=0),
budget={"outputTokens": 4000},
)
import { buildDelegationMeta } from '@datalayer/agent-teams';
const meta = buildDelegationMeta(
{ executionId: 'exec_1', rootExecutionId: 'exec_1', depth: 0 },
{ budget: { outputTokens: 4000 } },
);
Nothing here requires the rest of this package, and nothing here imports
Datalayer's own platform — agent_teams.a2a.orchestration_extension and
@datalayer/agent-teams's src/orchestrationExtension.ts are each a
standalone module (Python built on fasta2a alone; TypeScript with zero
runtime dependencies at all) implementing the identical wire shape, field
for field. A worker implementing none of it still runs; see the normative
specification and its JSON Schema at
docs/extension-v1.md
for the full field-by-field contract both modules implement.
This is distinct from agent_teams.a2a.extensions' own
team-coordination extension (https://datalayer.io/ext/team-coordination/v1)
— member assignment, task dependencies, health and reactions for a team's
own internal coordination. The two extensions are independent and
separately negotiated; a card may advertise either, both, or neither.
A reference worker, and a public conformance suite
agent_teams.a2a.reference_worker is the smallest thing that speaks the
extension correctly: no model, no framework beyond fasta2a, no Datalayer
control plane. Run it standalone —
python -m agent_teams.a2a.reference_worker # serves on :8000
— point any A2A client at it, and its card advertises the extension. It
answers a turn with what it "spent" (a character count, not a model call,
so this needs no API key), declines a delegation whose budget already
reads outputTokens: 0 naming the limit, and answers a pause request by
ending the turn at a checkpoint it makes up on the spot.
tests/test_reference_worker_conformance.py drives it over real ASGI HTTP
(httpx.ASGITransport, no socket) with hand-built JSON-RPC requests
matching docs/extension-v1.md's documented wire shapes — negotiation, a
declined budget, pause and resume — runnable by anyone against their own
worker, with no Datalayer service in the loop.
Release files for agent-teams 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_teams-0.0.4.tar.gz | 717.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_teams-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 794.1 kB
Release files / agent_teams-0.0.4.tar.gz
| Download URL | agent_teams-0.0.4.tar.gz |
|---|---|
| Size | 717.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d9bfc81fead984ae3b36edb1b674175f2a868e4465c9c4b98f6c6d2ca2fff1c1
|
|
BLAKE2b-256 checksum How to use checksums |
45f9f99423e920f6c6d7256f53fa5ce863e069a8ada4aa9cb052125f13d15950
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Release files / agent_teams-0.0.4-py3-none-any.whl
| Download URL | agent_teams-0.0.4-py3-none-any.whl |
|---|---|
| Size | 76.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1aa54920bd59afd0dbf2d6f52a32885047d2c9a66c4786deef768559390fd11a
|
|
BLAKE2b-256 checksum How to use checksums |
8196ad9e1701366f51bed8acf00eeb66a807b38587c9df201ca9bdec02c0475d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|