{"adoption": {"forks": 122, "observed_at": "2026-08-28T04:05:16.758173+00:00", "stars": 1649}, "canonical_url": "https://ross.abutalabs.com/products/pasa", "card": {"archived": false, "artifact_type": "application", "description": "PaSa -- an advanced paper search agent powered by large language models. It can autonomously make a series of decisions, including invoking search tools, reading papers, and selecting relevant references, to ultimately obtain comprehensive and accurate results for complex scholarly queries.", "domain": ["artificial-intelligence", "large-language-models"], "enriched": true, "function": ["agent-framework", "search-engine", "llm-inference", "rag", "machine-learning"], "health_score": 34, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["bytedance/pasa"], "name": "bytedance/pasa", "platform": ["python", "self-hosted"], "pushed_at": "2025-05-27T11:09:11+00:00", "repo": "bytedance/pasa", "stars": 1649, "tags": ["academic-paper-search", "llm-agent", "reinforcement-learning", "scholarly-search", "crawler-agent", "acl-2025", "ai-agents", "search", "natural-language-processing", "linux", "docker"], "topics": ["research"], "urls": [], "use_cases": ["find papers for a detailed academic research query", "comprehensive literature search beyond Google Scholar", "search for papers cited within related work sections", "filter collected papers for relevance to my research question", "run an autonomous research assistant for scholarly queries", "evaluate LLM agents on academic search benchmarks"], "what_it_is": "PaSa is an LLM-powered paper search agent from ByteDance that autonomously invokes search tools, reads papers, and selects relevant references to answer complex scholarly queries. It consists of two 7B agents (Crawler and Selector) trained with reinforcement learning on the synthetic AutoScholarQuery dataset, and is also available as a hosted demo.", "when_to_avoid": ["you need general web search rather than academic paper search", "you lack GPU resources to run 7B models locally and don't want to use the hosted demo", "you need a production-grade search service with SLAs"], "when_to_choose": ["you need comprehensive recall on complex or fine-grained scholarly queries", "you want an open-source, self-hostable alternative to Google Scholar or GPT-based search", "you need a research artifact with trained models and datasets available on Hugging Face"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pasa", "repo": "bytedance/pasa", "role": "main", "score": 31}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.758173+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.985596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "551278318184abec3e61f30e6f1fcf1954583cef4b5936849c8750bfe9667eef", "fetched_at": "2026-08-28T04:05:16.758173+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/pasa"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 23, "longevity": 44, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 618, "days_push": 463, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 31, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}