Workflows & Automations — agent-first builder for OpenHuman (early design check) #2370
alediez2048
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hey team — pointed here from Discord. I've been prototyping a Workflows/Automations feature on a fork; Phase 0 is complete locally and I want to surface the design before going deeper on Phase 1.
One-liner: a first-class Workflows surface where users describe an automation in chat and OpenHuman drafts, persists, and runs it against their connected accounts and memory.
Two examples that frame the product shape:
n8n / Zapier are the aha for users ("oh, automations") — but the product shape is agent-first, not canvas-first. The user never opens a graph editor; they describe what they want, OpenHuman drafts a workflow as a rich preview, the user clicks Save.
Why it fits OpenHuman: the primitives are already here —
cron,webhooks,composio,channels, the agent, memory, approvals, the event bus. What's missing is the surface that lets a user name and manage a long-running automation as a first-class entity. Today every action is one-shot.Status
Phase 0 — Connections Hub: complete on my fork (17 commits across P0-1 through P0-7).
/connectionsroute live;/skillsredirects (P0-4).connections::Rust domain (connections_listRPC + aggregator) per the controller-registry pattern.security/secretsintegration.Phase 1 — Workflows engine: in progress.
workflows::domain skeleton + the propose-and-click contract forworkflow_propose_createare next up.Happy to do a short Loom or live screenshare of the Connections Hub + the chat-creation flow if useful — much faster than the text.
Sketch of the full plan
workflows::Rust domain,cron+manualtriggers,agent_promptnode, separateworkflows.db. Hero flow: chat → propose → preview component → user clicks Save. Seeded read-only template catalog (RU-1..RU-4).webhook/composio_event/channel_messagetriggers;http_request/tool_call/condition/delaynodes. External platforms (n8n, Zapier, IFTTT, Make) are just-another-connection via generic plumbing — no platform-specific code.Safety pattern (relevant to #1339)
The agent has no mutating tools. Only read tools (
workflow_list,workflow_get, …) and propose tools (workflow_propose_create, …). Every propose tool returns a payload that the chat renders as an interactive<WorkflowProposalPreview>component; the user's click is what calls the actualworkflows_createRPC. Silent agent-driven mutation is impossible at the type level. Documented in ADR-010 (button confirmation not text matching) and ADR-012 (UI direct mutations, no mutating agent tools).Design tensions I'd love feedback on
enablecover it?docs/agent-workflows/already exists as a docs folder for contributor tooling (deep-work, agent-batch). Does "Workflows" read clearly as a user-facing product surface, or would you prefer a different label (Automations, Routines, Plays)?What I have in the fork
Full PRD + 20 ADRs + ticket primers for Phase 0 (done) and Phase 1 (drafted) are checked in at
Automations/. If the direction is aligned, I plan ~5-7 small PRs for Phase 0 upstreaming and ~8-12 for Phase 1, coverage gate respected throughout.Even "we'd prefer a different shape" is much cheaper to hear now than after another four PRs. Thanks 🙏
— Ale (@alediez2048)
Beta Was this translation helpful? Give feedback.
All reactions