OpenHands / OpenHands/software-agent-sdk
Feature: Expose title_generation_prompt on conversation start request type
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
autotitleandtitle_llm_profilealready live - Wire name:
title_generation_prompt(snake_case, matching the backend'sConversationConfigfield)
Context
The frontend (OpenHands/OpenHands) will:
- Add a textarea in Settings > Application > "Conversation titles" for the user to enter a custom prompt
- Store it as an app preference (
title_generation_prompt) alongsidetitle_llm_profile - Send it in the
POST /api/conversationspayload 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-sdkmust addtitle_generation_prompttoConversationConfigand accept it ingenerate_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
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 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