Expand description
Channel + thread domain layer.
A channel is a provider-specific messaging transport — WhatsApp,
Signal, Discord, or the in-process memory::InMemoryProvider used
for tests. A thread is a long-lived conversation between a
channel peer and a bound ThreadTarget; the target can be any
Callable (so agents, harnesses,
teams, workflows, or plain closures all qualify) or a [HarnessRef]
routed through a HarnessInputAdapter.
Channels are an optional, additive layer over existing agent
conversation interactions: nothing in AgentRef::turn
or HarnessRef::run changes — channels
just expose the same callables behind a messaging surface.
Modules§
- memory
- In-process channel provider used for tests and as a worked example.
Structs§
- Capabilities
- What kinds of payloads a channel will accept on outbound.
- Channel
Event Stream - Subscriber handle for
ChannelEvents. - Channel
Id - Channel
Message Record - Internal append-only message log entry. Stored per thread.
- Channel
Spec - Persisted description of a channel.
- InMemory
Channel Store - Inbound
Message - One inbound message coming off a provider.
- Outbound
Message - One outbound message the harness wants the provider to send.
- PeerId
- Provider
Ack - Result of a successful provider send.
- Provider
Handle - Cooperative shutdown handle for a provider’s long-running task.
- Thread
- One conversation between a peer and a bound target on a channel.
- Thread
Id - Thread
Policy - Lightweight policy controlling thread behavior.
- Thread
Ref - Public, shared handle on a
Thread. ImplementsCallableso a thread can be embedded as a workflow step or team child. - Thread
Summary - Lightweight summary row for listing threads in a channel.
Enums§
- Channel
Error - Channel
Event - Direction
- Message
Content - A piece of content that flows across a channel.
- Provider
Kind - Which transport this channel is backed by.
- Thread
Target - What a thread invokes when an inbound message arrives.
Traits§
- Callable
- Anything an agent / workflow / harness can call. Implemented by every executable unit so they’re interchangeable as workflow steps, tool invocations, and team routing targets.
- Channel
Provider - A provider-specific transport (WhatsApp / Signal / Discord / Memory).
- Channel
Store - Harness
Input Adapter - Bridge an inbound channel message into the state a harness reads on its next run.
Type Aliases§
- Callable
Handle - Type-erased handle. Crates that need to store heterogeneous callables (registries, workflow steps, tool slots) use this.
- Result