🤖 👥 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.5
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.5.tar.gz | 722.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_teams-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 798.8 kB
Release files / agent_teams-0.0.5.tar.gz
| Download URL | agent_teams-0.0.5.tar.gz |
|---|---|
| Size | 722.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf0180ff8c16b18cbb44309732b36a1e3bb84c98118d579e5494d7381c1b6fb0
|
|
BLAKE2b-256 checksum How to use checksums |
491b6362a78ef06db910b8e3b02b0e68762f14ee1c1debdde04a2b6f43876414
|
| 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.5-py3-none-any.whl
| Download URL | agent_teams-0.0.5-py3-none-any.whl |
|---|---|
| Size | 76.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c33b31cffa6cb8b78a0dedb5874ad3f3a1f137b8b5321181cbaebb5abb0ba3d
|
|
BLAKE2b-256 checksum How to use checksums |
3f3c19a24adadd49461756b28c4a529cf329534d23d21b469784e4357afdf472
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|