OpenHands / OpenHands/software-agent-sdk

Add a server-side tool for launching same-backend child conversations

Open
#4,781 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

architecture enhancement ready-for-dev
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.