ConsultingAdapter
autogen.beta.network.adapters.consulting.ConsultingAdapter #
Strict 1Q1R: initiator → 1 envelope, respondent → 1 reply, auto-close.
Knobs: none. Participants: exactly 2 (initiator + respondent).
Default view: :class:FullTranscript (transcripts are short).
Source code in autogen/beta/network/adapters/consulting.py
manifest instance-attribute #
manifest = ChannelManifest(type=CONSULTING_TYPE, version=1, participants=ParticipantSchema(min=2, max=2, roles=[INITIATOR.value, RESPONDENT.value]), knobs_schema={}, default_view_policy=name, expectations=[Expectation(name='acks_within', on_violation='auto_close', params={'seconds': 30}), Expectation(name='reply_within', on_violation='auto_close', params={'seconds': 600})])
initial_state #
fold #
Source code in autogen/beta/network/adapters/consulting.py
validate_create #
Source code in autogen/beta/network/adapters/consulting.py
validate_send #
Source code in autogen/beta/network/adapters/consulting.py
on_accepted #
Source code in autogen/beta/network/adapters/consulting.py
expected_next #
Source code in autogen/beta/network/adapters/consulting.py
default_view_policy #
extract_turn_input #
build_round_envelope #
render_envelope #
tools_for #
Consulting offers say to the participant whose turn it is.
State gating: the initiator has the floor until they send the prompt; the respondent has the floor after the prompt lands and before they reply. Once the respondent replies the channel auto-closes — no further turns.
The resolved tool is memoized per-client on the adapter (see :meth:_cached_say_tool) so the per-turn fast_depends schema build cost is paid once.
Source code in autogen/beta/network/adapters/consulting.py
build_text_envelope #
build_packet_envelope #
build_packet_envelope(channel_id, sender_id, body, *, handoff=None, context_set=None, audience=None, causation_id=None)