Start from an explicit event
Define a trigger for a served agent or bot, selected project and bounded allowance. Named events can come from schedules or supported authenticated integrations. A newly defined trigger is active immediately.
Bring recurring work and selected external observations into a project with its own assistants, knowledge and procedures. Follow the resulting work through durable records.
A schedule describes timing. A trigger connects a named event to bounded work. Firings record occurrences and outcomes; the inbox retains deliveries.
Define a trigger for a served agent or bot, selected project and bounded allowance. Named events can come from schedules or supported authenticated integrations. A newly defined trigger is active immediately.
List triggers and firings to see what actually started. Pausing stops future listening and refuses queued waiting firings. Already-running work has its own status and cancellation contract.
Background starts still need tools, project access, models and command policy. An operation requiring a person can remain refused or awaiting input. Hooks react to lifecycle seams; a hook file does not create a timer or subscribe to arbitrary external events.
The separate integration runtime maps selected external bindings into project work through the public SDK. It owns its local delivery journal, bounded queues and declarative routing policies.
Adapters produce structured observations with the identity and timing needed for routing. State transitions, gaps and resynchronization have distinct meanings.
Configured policies decide when an observation can start a pipeline. Optional JavaScript handlers produce validated effect plans; the runtime records them before dispatch.
Retain the actual receipt and workflow identity, then read its result. Queue and journal bounds stop intake rather than silently discarding transitions.
Home Assistant owns devices and immediate automation. A Plowshare project can hold the agents, scripts and retained knowledge used to investigate a selected condition.
The binding reads selected entities through Home Assistant’s authenticated WebSocket stream. Startup and reconnect snapshots establish current state without inventing historical threshold crossings.
Configure a threshold, hold interval and cooldown to route qualifying observations. The hold requires an observed interval; gaps, low readings, unavailable evidence and restart cancel pending holds. Downtime does not count.
An action fixes its service, target entities and parameter schema. Model arguments cannot select another device or area. Scenes and notifications use the services you explicitly configure.
An accepted service call is an acknowledgment, not proof of a physical result. Lost acknowledgments remain unknown and are not automatically resent. Optional causal feedback suppression uses observed Home Assistant context lineage.
The adapter and examples are implemented. Configure credentials, entity selections, membership and pipeline definitions for your deployment, then verify the live device and notification path.
Home Assistant configuration and examples ↗The A2A adapter is a separate process built on the public Java SDK. It maps supported external tasks and contexts into Plowshare’s existing incoming and outgoing contracts.
An Agent Card advertises the configured exported receiver and its granted catalogue. External callers use adapter-configured credentials. The receiver handles work in its explicit project with its own capabilities and limits.
A2A receiving ↗Outgoing work retains request identity, claim fencing, remote task correlation and cancellation state. Keep the actual request UUID and remote reference when reconciling a lost acknowledgment.
A2A sending ↗The adapter supports a documented subset of A2A operations. A local timeout does not prove a remote task never started. Poll the existing work and follow its recovery contract before submitting another request.
Use the SDK to authenticate, select an authorized project, admit work, follow its durable outcome and return the result to the correct external user.
Your adapter owns external identity mapping, credentials, reply destinations and protocol translation. The server owns agent execution and persistent project work. A chat-service connector is a possible extension, with its application-specific permissions and delivery policy still to be built.
Explore the SDKs →