Add PDF-aware preliminary investigation to arXiv research - #55644
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Hey What looks good:
This looks ready for review by maintainers. The changes are aligned with the project's agentic workflow patterns and directly implement a feature request from the core team discussion.
|
| # Excluded feature-flag-gated operations: | ||
| # - "extract_structured" # Requires liter-llm feature flag at build time | ||
| --- | ||
| <!-- |
There was a problem hiding this comment.
@copilot keep the comments, and only expose a tiny amount of prompting.
There was a problem hiding this comment.
Addressed in f328a86: retained the component documentation as comments and reduced the exposed prompt to the extract_file instruction.
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds PDF-based evidence gathering to the daily arXiv research workflow before screening and ranking.
Changes:
- Adds a preliminary PDF investigator using Kreuzberg.
- Allows arXiv network access and discussion links.
- Exposes Kreuzberg usage documentation and updates generated output.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/daily-arxiv-researcher.md |
Adds PDF investigation and enriched screening. |
.github/workflows/shared/mcp/kreuzberg.md |
Makes MCP documentation visible. |
.github/workflows/daily-arxiv-researcher.lock.yml |
Updates compiled workflow metadata and network policy. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 4
- Review effort level: Balanced
| # Resolved workflow manifest: | ||
| # Imports: | ||
| # - shared/crush.md | ||
| # - shared/mcp/kreuzberg.md |
|
|
||
| ## Step 1b: Investigate Paper PDFs | ||
|
|
||
| For each paper in `papers`, invoke the `preliminary-investigator` sub-agent with its full paper object. Merge the returned `pdf_fetched` and `preliminary_note` fields into that paper object. |
|
|
||
| For each paper in `papers`, invoke the `preliminary-investigator` sub-agent with its full paper object. Merge the returned `pdf_fetched` and `preliminary_note` fields into that paper object. | ||
|
|
||
| PDF extraction failures are non-fatal: continue screening and ranking with an empty `preliminary_note` when `pdf_fetched` is `false`. |
| 1. Download `https://arxiv.org/pdf/<id>` to `/tmp/gh-aw/agent/arxiv/<id>.pdf` with `curl`. If the download fails, return `{"pdf_fetched": false, "preliminary_note": ""}`. | ||
| 2. Use the `kreuzberg` MCP server's `extract_bytes` tool with the PDF's base64 content to extract its text. If extraction fails or produces no text, return `{"pdf_fetched": false, "preliminary_note": ""}`. |
The daily arXiv workflow previously screened papers from abstracts only and redacted arXiv links in generated discussions. This adds a best-effort PDF evidence pass before screening.
preliminary-investigatorto download and extract paper PDFs.{"title":"...","abstract":"...","preliminary_note":"Technique and results found in the PDF"}Network and output policy
arxiv.organdexport.arxiv.orgfor PDF retrieval.Kreuzberg shared component