OpenHands / OpenHands/software-agent-sdk

Feature: Expose title_generation_prompt on conversation start request type

Open Beginner friendly
#4,760 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.1k
Forks
539
Avg merge
1d 19h
Merged PRs (30d)
137

Description

Feature Request

As a user, I want to configure the prompt used for LLM-based conversation title generation, so I can replace the default hardcoded prompt with my own.

The agent-canvas frontend currently sends autotitle: true and an optional title_llm_profile when starting a conversation. The actual title generation prompt is hardcoded in the backend (software-agent-sdk). We need the TypeScript client to expose a new title_generation_prompt field so the frontend can send a custom prompt override.

Proposed Change

Expose title_generation_prompt as an optional field on the conversation start request type (the type used by ConversationClient when creating a new conversation). This mirrors the existing title_llm_profile field:

  • Type: string | undefined (optional; when omitted, the backend uses its default hardcoded prompt)
  • Location: On the same request type where autotitle and title_llm_profile already live
  • Wire name: title_generation_prompt (snake_case, matching the backend's ConversationConfig field)

Context

The frontend (OpenHands/OpenHands) will:

  1. Add a textarea in Settings > Application > "Conversation titles" for the user to enter a custom prompt
  2. Store it as an app preference (title_generation_prompt) alongside title_llm_profile
  3. Send it in the POST /api/conversations payload at conversation start

For that to work, the TypeScript client must type and accept the field on the start-conversation request. The client currently exposes title_llm_profile -- the new field should follow the exact same pattern.

Dependencies

  • OpenHands/software-agent-sdk must add title_generation_prompt to ConversationConfig and accept it in generate_title_with_llm(). Tracked in a separate issue.
  • After the client is updated and released, OpenHands/OpenHands (agent-canvas frontend) will consume the new field. Tracked in a separate issue.

This issue was created by an AI agent (OpenHands) on behalf of Devin.

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 at ConversationClient and locate the conversation start request type containing autotitle and title_llm_profile. Add the optional title_generation_prompt string using the same pattern, then verify that a conversation-start payload accepts the snake_case field while omission remains valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.