Skip to content

Asynchronous Download and Conversion Creates Workflow Challenges for Sequential Processing #54

@marfago

Description

@marfago

Description:

The current design of download_paper and read_paper tools involves asynchronous conversion, which makes sequential workflows difficult for LLMs and automated systems.

Problem:

  • download_paper initiates download and starts asynchronous conversion.
  • read_paper can only access the paper after conversion completes.
  • Conversion time is unpredictable and may take variable duration.
  • LLMs operate in linear, sequential steps and cannot easily "wait and come back later" for asynchronous processes.
  • Splitting the action into two separate tools (download_paper + read_paper) is inefficient for LLMs, as it requires at least two tool calls just to access a single paper's content, when they typically want to get the content in one operation.

This leads to failed reads if attempted too early, or requires complex polling logic that LLMs aren't suited for.

Impact:

  • Frustrates sequential research workflows (e.g., search → download → read → summarize in sequence).
  • Forces inefficient workarounds like manual delays or repeated attempts.
  • Limits integration with LLM-driven automation.

Proposed Solutions:

  1. Blocking Read Tool: Add a new read_paper_blocking tool that downloads (if needed) and converts synchronously, returning the content directly.
  2. Blocking Flag: Add a blocking parameter to download_paper that waits for conversion to complete before returning.
  3. Status Tool: Add a get_paper_status tool to check if a paper is ready for reading.

Example Use Case: In a workflow to analyze multiple papers, an LLM wants to:

  1. Search for papers
  2. Download each relevant paper
  3. Immediately read and summarize

Currently, step 3 fails if conversion isn't done, breaking the flow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions