PLOWSHARE
04 / AUTOMATION & INTEGRATIONSCONNECT THE WORLD AROUND YOUR WORK

Respond to events.
Keep the context.

Bring recurring work and selected external observations into a project with its own assistants, knowledge and procedures. Follow the resulting work through durable records.

Put ongoing work
on the server.

A schedule describes timing. A trigger connects a named event to bounded work. Firings record occurrences and outcomes; the inbox retains deliveries.

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.

Inspect and pause

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.

Unattended work uses the same permissions.

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.

Automation and integrations guide ↗

Observe. Route.
Investigate.

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.

  1. Select meaningful observations

    Adapters produce structured observations with the identity and timing needed for routing. State transitions, gaps and resynchronization have distinct meanings.

  2. Apply a bounded route

    Configured policies decide when an observation can start a pipeline. Optional JavaScript handlers produce validated effect plans; the runtime records them before dispatch.

  3. Follow server-owned work

    Retain the actual receipt and workflow identity, then read its result. Queue and journal bounds stop intake rather than silently discarding transitions.

Integration runtime contract ↗

Investigate selected
home observations.

Home Assistant owns devices and immediate automation. A Plowshare project can hold the agents, scripts and retained knowledge used to investigate a selected condition.

Selected state stream

The binding reads selected entities through Home Assistant’s authenticated WebSocket stream. Startup and reconnect snapshots establish current state without inventing historical threshold crossings.

A condition worth investigating

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.

Configured actions

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.

Verification after an action

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 ↗

Work with agents
outside your system.

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.

Receive supported work

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 ↗

Send to a configured peer

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 ↗
Keep uncertainty visible.

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.

Connect an application
of your own.

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 →