OpenHands / OpenHands/software-agent-sdk
Add a server-side tool for launching same-backend child conversations
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 539
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 137
Description
Problem or Motivation
Agent Canvas currently implements launch_child_conversation as a client-defined tool. When the agent invokes it, every connected Canvas client can receive the action and the browser performs the conversation-creation side effect. Canvas therefore maintains a browser-local claim ledger to prevent replayed or multiply delivered actions from launching duplicate children.
The browser should not own this operation when a child is intended to run on the same backend as its parent. The agent server already owns the parent conversation, workspace, worktree behavior, and parent/child relationship.
Desired Behavior
Provide a server-side tool that launches a child conversation on the same agent-server backend as its parent and returns the child conversation identity and launch status to the parent agent. Canvas should only render the tool action/result; it should not execute the launch.
The tool should support the child-launch inputs that are meaningful within one backend, including the task brief, optional title, and local isolation/worktree behavior. Cross-backend target selection is intentionally out of scope.
Acceptance Criteria
- An agent can invoke a server-executed tool to create a child conversation on its own backend.
- The child is persisted with its parent conversation relationship and inherits the parent workspace as required by the existing agent-server relationship rules.
- The tool returns the child conversation ID and initial launch status to the parent agent without requiring a browser-side callback.
- Local worktree and shared-workspace isolation behavior is covered by focused agent-server tests.
- The tool is not exposed when the active backend cannot support child creation.
Related
- OpenHands/OpenHands#16769
- OpenHands/OpenHands#16969
This issue was created by an AI agent (OpenHands) on behalf of Gregory Neubig.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing client-defined launch_child_conversation tool and the agent server's conversation, workspace, and parent/child relationship rules. Trace how child-launch inputs and backend capability checks are handled, then add focused agent-server tests for local worktree and shared-workspace behavior. Done means the server returns the child identity and launch status without a browser callback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100