[Question]: Performance bottlenecks in Agent execution & file processing + Questions on Bulk URL uploads & PDF page tracking
Issue Origin
Observed or reproduced in a real environment
Your Question
Hi OpenViking team,
First off, thank you for the great work on this project! I’ve been using OpenViking for a while now and really appreciate the framework. However, as I've scaled my usage, I've run into some performance bottlenecks and have a few implementation questions.
I would greatly appreciate it if the team or community could help me understand the root causes and suggest optimizations for the following issues:
Part 1: Performance & Latency Issues
1. High latency in MCP Tool Calls during Agent Execution I am experiencing significant delays when the agent calls MCP tools. As shown in the screenshot below, a single tool call can take anywhere from 20s to 40s. When the initial result isn't found immediately, the agent chains multiple subsequent tool calls. This cascading effect causes a single, straightforward question (with a relatively small and clear document context) to take an average of 3 minutes to complete.
- Question: Are there known ways to speed up the tool execution loop? Is there overhead in the MCP protocol integration, or are there configuration tweaks (e.g., timeouts, parallel tool execution, or prompt adjustments) to reduce this latency?
2. Slow semantic processing and vector embedding during file upload When uploading a small PDF (only a few pages), the semantic processing and vector embedding phases take a surprisingly long time, even though we are using relatively lightweight models. I even tried switching to an even smaller model, but it didn't make a noticeable difference.
The bottleneck is not the parsing phase. According to the task center, parsing completes very quickly, while the delay specifically occurs during Step 2 (Semantic Processing) and Step 3 (Vector Embedding).
For reference, here is our current model stack:
VLM:
qwen3-vl-8b-instruct-mlxEmbedding:
text-embedding-qwen3-embedding-0.6bQuestion: What is typically causing the bottleneck in these specific steps?
Part 2: Implementation & Feature Questions
3. Bulk uploading for Remote URLs I need to ingest a large number of remote URLs.
- Question: Is there native support for bulk remote URL ingestion in OpenViking? If not, what is the recommended approach? Do we need to implement our own message queue and write a wrapper script to sequentially/concurrently call the
POST /api/v1/resourcesHTTP API?
4. Preserving and returning original PDF page numbers in the final response and generated summaries I am using MinerU as my PDF parser, which is supposed to successfully extract the original PDF page number for each content block. I have already added explicit instructions to preserve this page number metadata when uploading the files, but unfortunately, it doesn't seem to work.
- Question: How can I ensure this metadata (the original page number) flows seamlessly through the entire OpenViking pipeline? Specifically, I need it to persist not only through the chunking and embedding phases, but also when OpenViking generates the abstract and overview markdown files for the document. Ultimately, I want this page number to be attached to the final LLM response as a citation.
- What is the recommended approach to achieve this end-to-end?
Thank you so much for your time and help! Looking forward to your insights.
Context
No response
Code Example (Optional)
Related Area
No response
Before Asking
- I have checked the documentation
Source: volcengine/OpenViking