juliodosreis/awesome-agenticsystems

Astro

5

11 commits

updated Aug 31, 2026

See the code

README

Awesome Agentic Systems

Papers Deploy Code: MIT Papers: CC0 PRs welcome

A curated collection of papers on agentic AI systems, classified by the contribution of each one.

Every paper is filed under a single area, its contribution, then cut across by topics and facets: what it is about, at what scale, in which domain. The vocabulary is validated at build time, so a term that stops resolving stops the build.

Browse the site · Suggest a paper · Contributing guide · RSS

11 areas in 4 layers, 58 topics and 32 facet values across 5 facets.

Contents

The collection

32 papers listed, 32 of them with a written summary.

The site has filtering, search and the reading-path graph; this listing is the same data, flattened for reading on GitHub.

🔥 essential · 📖 survey · ⚖️ benchmark. Surveys first within each area, then newest first.

Overview

Where to enter the field.

Foundations & surveys (foundations)

Agent capabilities

What the agent reasons about, stores, executes and learns.

Reasoning, planning & reflection (reasoning-planning)

Memory (memory)

Tools, environment & context (tools-context)

Learning, skills & self-evolution (learning-evolution)

System structure

The inner loop of the system, its number of agents, and the substrate it runs on.

Coordination & organization (coordination)

Harness, scaffolding & AgentOps (engineering)

Measurement and control

How a system is measured, and how its risk is governed.

Evaluation & benchmarks (evaluation)

Safety, trust & governance (safety)

Gaps. No papers yet in architectures, interoperability. The areas exist in the taxonomy before anything lives in them — the gap is a reading list, and a good place to make a first contribution.

Design decisions

  • A validated vocabulary. The Zod schema reads the vocabulary from taxonomy.yml. A nonexistent area or topic breaks the build and prints the valid values. The taxonomy validates itself too: an area pointing at a missing layer, or an orphaned domain, stops compilation.
  • A taxonomy with a declared bibliographic basis (CoALA, Wang et al. 2024, Luo et al. 2025, harness survey 2026), browsable at /taxonomy. Each reference states which part of the vocabulary it supports.
  • Three navigation axes: by area (contribution), by domain (application), and by reading path (the relates_to graph between papers, navigable in both directions).
  • Two-level classification. A single area defines the contribution; topics and facets (about, scale, infra, type, domain) cut across areas and say what the paper is about.
  • Adding a paper is a GitHub issue, with no local setup.
  • Site-wide search (Pagefind), an RSS feed of new additions, and a sitemap.

Adding a paper

WhoHowResulting status
Suggest a paperAnyoneIssue with 3 fields → reviewed PRtriaged — visible on the site
Add and readAnyone willing to cloneEdit the .yml and open a pull requestread — includes tldr and notes

Issue submission

No cloning, no local scripts.

  1. Go to the Issues tab.
  2. Pick New IssueAdd a Paper.
  3. Paste the link to the paper. An arXiv link supplies the rest: the title, authors and year are fetched automatically. For any other source, paste the BibTeX as well.
  4. Pick area, scale and type. Each option in the form carries a one-line description. The triaged state requires these three fields, and reaching it makes the paper visible once the PR is merged. When the choice is unclear, pick the closest option; the PR is reviewed before merging.
  5. A GitHub Action (issue_ops.yml) validates the data, builds the site with the new record, and opens a pull request. On a missing year, an invalid link, a duplicate paper, or a value outside the taxonomy, the Action comments the reason on the issue and labels it needs-fix in place of opening a broken PR. Close and reopen the issue to retry.

Direct edit

The issue flow reaches triaged: no tldr, notes, topics or about, since those require reading the paper. To add them, edit the .yml directly. python scripts/add.py <arxiv-id> fetches the metadata and creates the record in the captured state with the classification fields commented out.

Editing a record already in the collection follows the same path: change the file under src/content/papers/ and open a pull request. validate.yml runs the build and the test suite on it.

Incomplete classification does not block a paper. The schema enforces three states:

statusRequiresEffect
capturedmetadata onlyKept in git, not visible on the site.
triagedarea, scale, typeVisible in the index.
readtldr, topics, aboutWorks as a summary on the site.

See CONTRIBUTING.md for picking an area, and TAXONOMY.md for filling a record in by hand or proposing changes to the vocabulary.

The taxonomy

It lives in src/data/taxonomy.yml (v3) and is the single source of truth: the validator, the site, the guides and the issue form all read from that one file.

LayerAreas
Overviewfoundations
Agent capabilitiesreasoning-planning, memory, tools-context, learning-evolution
System structurearchitectures, coordination, interoperability, engineering
Measurement and controlevaluation, safety

The complete vocabulary, with usage counts, is at /taxonomy. The design and the criterion behind each field are documented in TAXONOMY.md.

Two decisions that resolve most ambiguous cases:

  • Scale does not determine the area. Having multiple agents is expressed with scale: [multi-agent]. The coordination area is reserved for papers whose central contribution is the coordination mechanism itself.
  • A term belongs to exactly one vocabulary. mcp and a2a are topics (the paper is about the protocol); rag, knowledge-graph, sandbox and api are infra values (the system uses them).

Local development

Requires Node.js 22.12 or newer (an Astro 7 requirement). The exact version is in .nvmrc, which is also what CI uses: nvm use picks it up.

npm install
npm run dev

Python 3.11+ is needed only for the scripts: npm run docs, npm test and scripts/add.py. Browsing and building the site need nothing but Node.

pip install -r requirements-dev.txt

The dev server starts at http://localhost:4321.

The search box in the header is powered by Pagefind, which indexes the built HTML. Under astro dev it returns nothing, which is expected. To exercise search, run npm run build && npm run preview.

Note: as of Astro 7 the dev server runs as a background daemon. Ctrl+C does not stop it, and a later npm run dev attaches to the existing instance, which can serve a stale version of the site. To stop it:

npx astro dev stop      # stop the server
npx astro dev status    # check the process
npx astro dev logs      # view server logs

Commands

CommandWhat it does
npm run devDev server on localhost:4321
npm run buildRuns astro check (types + paper validation) and builds to dist/
npm run previewServes dist/ to review the final build
npm run docsRegenerates the doc sections and issue form from taxonomy.yml
npm run docs:checkFails if those are stale. CI runs this.
npm testRuns the full test suite (~20s)
npm run test:fastSkips the tests that shell out to a real build (<1s)
python scripts/add.py <arxiv-id>Creates a record from arXiv metadata

npm run docs also rewrites the paper listing in this README and the counts in .github/badges.json, so both stay true without anyone updating them by hand.

npm run build gates deployment: a type error, or a paper that fails taxonomy validation, stops publication.

Layout

PathContents
src/content/papers/One .yml per paper. The data.
src/data/taxonomy.ymlSingle source of truth: layers, areas, topics, facets, domains and references.
src/content.config.tsZod schema, built from the taxonomy vocabulary. Enforces the three paper states.
src/lib/taxonomy.tsShared loader for taxonomy.yml plus integrity guards (assertGroupsResolve).
src/lib/papers.tsCollection helpers: publication logic, author formatting, id/filename check.
src/lib/url.tsurl() helper for internal links. The site lives under a subpath, so hardcoding routes breaks every fork.
src/layouts/Layout.astroShared shell: header, area sidebar, client scripts.
src/pages/Routes: /, /areas, /domains, /taxonomy, /papers/[id], /rss.xml.
public/Static files (favicon).
scripts/arxiv.py (shared metadata fetch), add.py (local capture), process_issue.py (used by the Action), gen_docs.py (README listing, doc blocks, issue form, badges).
tests/pytest suite. test_schema.py is the important one: it falsifies records on purpose to prove the build rejects them.
.github/workflows/issue_ops.yml (issue intake), validate.yml (build on every PR), deploy.yml (GitHub Pages).

Tests

pip install -r requirements-dev.txt
npm test

The suite covers the issue parser, the one script that runs unsupervised, along with the doc generator and the build-time guards. The assertions cover the error messages as well as the exit codes, since a rejection a contributor cannot act on leaves the submission stuck.

tests/test_schema.py is deliberately slow. It falsifies a record or the taxonomy and runs a real npm run build per case. A passing npm run build proves only that valid data compiles, and leaves the behavior of the guards unmeasured. Skip it locally with npm run test:fast.

Contributing

Read CONTRIBUTING.md. Suggestions, corrections to a classification, and proposals for new vocabulary are all welcome, and each has its own issue template. Participation is covered by the Code of Conduct.

Citing this collection

For citing the taxonomy or the collection, the repository carries a CITATION.cff, which GitHub's "Cite this repository" button reads. It covers the classification work only. The papers themselves are cited directly.

License

Two licenses, because the repository holds two different things:

  • Code (src/, scripts/, .github/): MIT.
  • The paper collection (src/content/papers/) and the taxonomy (src/data/taxonomy.yml): CC0 1.0. Bibliographic metadata is reusable without conditions.

The papers themselves carry no license from this repository. They stay under the terms their publishers set. See LICENSE.

Contributors

AleNunezArroyo

10 commits

juliodosreis

1 commits

juliodosreis/awesome-agenticsystems

Astro

5

11 commits

updated Aug 31, 2026

See the code

README

Awesome Agentic Systems

Papers Deploy Code: MIT Papers: CC0 PRs welcome

A curated collection of papers on agentic AI systems, classified by the contribution of each one.

Every paper is filed under a single area, its contribution, then cut across by topics and facets: what it is about, at what scale, in which domain. The vocabulary is validated at build time, so a term that stops resolving stops the build.

Browse the site · Suggest a paper · Contributing guide · RSS

11 areas in 4 layers, 58 topics and 32 facet values across 5 facets.

Contents

The collection

32 papers listed, 32 of them with a written summary.

The site has filtering, search and the reading-path graph; this listing is the same data, flattened for reading on GitHub.

🔥 essential · 📖 survey · ⚖️ benchmark. Surveys first within each area, then newest first.

Overview

Where to enter the field.

Foundations & surveys (foundations)

Agent capabilities

What the agent reasons about, stores, executes and learns.

Reasoning, planning & reflection (reasoning-planning)

Memory (memory)

Tools, environment & context (tools-context)

Learning, skills & self-evolution (learning-evolution)

System structure

The inner loop of the system, its number of agents, and the substrate it runs on.

Coordination & organization (coordination)

Harness, scaffolding & AgentOps (engineering)

Measurement and control

How a system is measured, and how its risk is governed.

Evaluation & benchmarks (evaluation)

Safety, trust & governance (safety)

Gaps. No papers yet in architectures, interoperability. The areas exist in the taxonomy before anything lives in them — the gap is a reading list, and a good place to make a first contribution.

Design decisions

  • A validated vocabulary. The Zod schema reads the vocabulary from taxonomy.yml. A nonexistent area or topic breaks the build and prints the valid values. The taxonomy validates itself too: an area pointing at a missing layer, or an orphaned domain, stops compilation.
  • A taxonomy with a declared bibliographic basis (CoALA, Wang et al. 2024, Luo et al. 2025, harness survey 2026), browsable at /taxonomy. Each reference states which part of the vocabulary it supports.
  • Three navigation axes: by area (contribution), by domain (application), and by reading path (the relates_to graph between papers, navigable in both directions).
  • Two-level classification. A single area defines the contribution; topics and facets (about, scale, infra, type, domain) cut across areas and say what the paper is about.
  • Adding a paper is a GitHub issue, with no local setup.
  • Site-wide search (Pagefind), an RSS feed of new additions, and a sitemap.

Adding a paper

WhoHowResulting status
Suggest a paperAnyoneIssue with 3 fields → reviewed PRtriaged — visible on the site
Add and readAnyone willing to cloneEdit the .yml and open a pull requestread — includes tldr and notes

Issue submission

No cloning, no local scripts.

  1. Go to the Issues tab.
  2. Pick New IssueAdd a Paper.
  3. Paste the link to the paper. An arXiv link supplies the rest: the title, authors and year are fetched automatically. For any other source, paste the BibTeX as well.
  4. Pick area, scale and type. Each option in the form carries a one-line description. The triaged state requires these three fields, and reaching it makes the paper visible once the PR is merged. When the choice is unclear, pick the closest option; the PR is reviewed before merging.
  5. A GitHub Action (issue_ops.yml) validates the data, builds the site with the new record, and opens a pull request. On a missing year, an invalid link, a duplicate paper, or a value outside the taxonomy, the Action comments the reason on the issue and labels it needs-fix in place of opening a broken PR. Close and reopen the issue to retry.

Direct edit

The issue flow reaches triaged: no tldr, notes, topics or about, since those require reading the paper. To add them, edit the .yml directly. python scripts/add.py <arxiv-id> fetches the metadata and creates the record in the captured state with the classification fields commented out.

Editing a record already in the collection follows the same path: change the file under src/content/papers/ and open a pull request. validate.yml runs the build and the test suite on it.

Incomplete classification does not block a paper. The schema enforces three states:

statusRequiresEffect
capturedmetadata onlyKept in git, not visible on the site.
triagedarea, scale, typeVisible in the index.
readtldr, topics, aboutWorks as a summary on the site.

See CONTRIBUTING.md for picking an area, and TAXONOMY.md for filling a record in by hand or proposing changes to the vocabulary.

The taxonomy

It lives in src/data/taxonomy.yml (v3) and is the single source of truth: the validator, the site, the guides and the issue form all read from that one file.

LayerAreas
Overviewfoundations
Agent capabilitiesreasoning-planning, memory, tools-context, learning-evolution
System structurearchitectures, coordination, interoperability, engineering
Measurement and controlevaluation, safety

The complete vocabulary, with usage counts, is at /taxonomy. The design and the criterion behind each field are documented in TAXONOMY.md.

Two decisions that resolve most ambiguous cases:

  • Scale does not determine the area. Having multiple agents is expressed with scale: [multi-agent]. The coordination area is reserved for papers whose central contribution is the coordination mechanism itself.
  • A term belongs to exactly one vocabulary. mcp and a2a are topics (the paper is about the protocol); rag, knowledge-graph, sandbox and api are infra values (the system uses them).

Local development

Requires Node.js 22.12 or newer (an Astro 7 requirement). The exact version is in .nvmrc, which is also what CI uses: nvm use picks it up.

npm install
npm run dev

Python 3.11+ is needed only for the scripts: npm run docs, npm test and scripts/add.py. Browsing and building the site need nothing but Node.

pip install -r requirements-dev.txt

The dev server starts at http://localhost:4321.

The search box in the header is powered by Pagefind, which indexes the built HTML. Under astro dev it returns nothing, which is expected. To exercise search, run npm run build && npm run preview.

Note: as of Astro 7 the dev server runs as a background daemon. Ctrl+C does not stop it, and a later npm run dev attaches to the existing instance, which can serve a stale version of the site. To stop it:

npx astro dev stop      # stop the server
npx astro dev status    # check the process
npx astro dev logs      # view server logs

Commands

CommandWhat it does
npm run devDev server on localhost:4321
npm run buildRuns astro check (types + paper validation) and builds to dist/
npm run previewServes dist/ to review the final build
npm run docsRegenerates the doc sections and issue form from taxonomy.yml
npm run docs:checkFails if those are stale. CI runs this.
npm testRuns the full test suite (~20s)
npm run test:fastSkips the tests that shell out to a real build (<1s)
python scripts/add.py <arxiv-id>Creates a record from arXiv metadata

npm run docs also rewrites the paper listing in this README and the counts in .github/badges.json, so both stay true without anyone updating them by hand.

npm run build gates deployment: a type error, or a paper that fails taxonomy validation, stops publication.

Layout

PathContents
src/content/papers/One .yml per paper. The data.
src/data/taxonomy.ymlSingle source of truth: layers, areas, topics, facets, domains and references.
src/content.config.tsZod schema, built from the taxonomy vocabulary. Enforces the three paper states.
src/lib/taxonomy.tsShared loader for taxonomy.yml plus integrity guards (assertGroupsResolve).
src/lib/papers.tsCollection helpers: publication logic, author formatting, id/filename check.
src/lib/url.tsurl() helper for internal links. The site lives under a subpath, so hardcoding routes breaks every fork.
src/layouts/Layout.astroShared shell: header, area sidebar, client scripts.
src/pages/Routes: /, /areas, /domains, /taxonomy, /papers/[id], /rss.xml.
public/Static files (favicon).
scripts/arxiv.py (shared metadata fetch), add.py (local capture), process_issue.py (used by the Action), gen_docs.py (README listing, doc blocks, issue form, badges).
tests/pytest suite. test_schema.py is the important one: it falsifies records on purpose to prove the build rejects them.
.github/workflows/issue_ops.yml (issue intake), validate.yml (build on every PR), deploy.yml (GitHub Pages).

Tests

pip install -r requirements-dev.txt
npm test

The suite covers the issue parser, the one script that runs unsupervised, along with the doc generator and the build-time guards. The assertions cover the error messages as well as the exit codes, since a rejection a contributor cannot act on leaves the submission stuck.

tests/test_schema.py is deliberately slow. It falsifies a record or the taxonomy and runs a real npm run build per case. A passing npm run build proves only that valid data compiles, and leaves the behavior of the guards unmeasured. Skip it locally with npm run test:fast.

Contributing

Read CONTRIBUTING.md. Suggestions, corrections to a classification, and proposals for new vocabulary are all welcome, and each has its own issue template. Participation is covered by the Code of Conduct.

Citing this collection

For citing the taxonomy or the collection, the repository carries a CITATION.cff, which GitHub's "Cite this repository" button reads. It covers the classification work only. The papers themselves are cited directly.

License

Two licenses, because the repository holds two different things:

  • Code (src/, scripts/, .github/): MIT.
  • The paper collection (src/content/papers/) and the taxonomy (src/data/taxonomy.yml): CC0 1.0. Bibliographic metadata is reusable without conditions.

The papers themselves carry no license from this repository. They stay under the terms their publishers set. See LICENSE.

Contributors

AleNunezArroyo

10 commits

juliodosreis

1 commits

Languages

Astro

45.4%

Python

44.4%

TypeScript

9.8%