Replies: 1 comment
|
Yes, this is supported now. You're on Eve 0.31; remote-task HITL routing landed later. Upgrade both deployments to the same current Eve version and the parent channel should receive the child's input/approval prompts. |
0 replies
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.
Setup
Two eve deployments, same version (eve 0.31.0, ai 7.0.38, @vercel/connect 0.6.1):
router — Slack channel (Vercel Connect credentials), declares the specialist via defineRemoteAgent with auth: vercelOidc() and forwardPrincipal: true, and has experimental: { subagentPersistentSessions: true } in agent.ts
data — headless (no channels except eve.ts), accepts the router via vercelOidc({ subjects }) + trustedForwarders, has a tool with an approval policy that returns "user-approval" for certain inputs
Principal forwarding works: the child session runs as the end user, user-scoped Connect grants resolve, tool calls succeed.
Expected
Per the Subagents docs: "The parent stream carries the control-plane events subagent.called and subagent.completed, plus interactive input.requested, authorization.required, and authorization.completed events proxied from descendants so the root channel can prompt the user."
We expected the child's approval to surface as buttons in the router's Slack thread.
Actual
Without subagentPersistentSessions: the dispatch fails immediately with Task mode cannot wait for follow-up input (next: null) / SESSION_FAILED — expected, one-shot children can't park.
With subagentPersistentSessions: true on the router: the child parks correctly (visible in the data deployment's Agent Runs as a pending "Approve tool call"), but nothing arrives on the router side — no input.requested on the parent stream, no Slack rendering, no error. The parent just waits. Approving via the Agent Runs UI on the child deployment resumes it fine.
The Remote agents docs list subagent.called, action.result, and subagent.completed for remote dispatch but don't mention the interactive events, so it's unclear whether this is a gap in 0.31, unimplemented for remote (vs. local) descendants, or something we've misconfigured.
Questions
Is input.requested proxying from remote children to the parent channel supported today? If yes, what are we missing (an opt-in, a callback config)?
Same question for authorization.required — we're building per-user OAuth (Vercel Connect) inside the remote child and need the consent challenge to render on the parent's Slack, since the child is headless by design.
If unsupported: is it on the roadmap? Our workaround is denying approval-gated calls in routed sessions with a reason string, which works but downgrades the UX.
Happy to provide session ids / run traces privately. Great framework — the durable parking and principal forwarding have been excellent to build on.
All reactions