Skip to content

Feature: Expose title_generation_prompt on conversation start request type #350

Description

@DevinVinson

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions