ai newsSo., 25. Okt.
EilmeldungStudie von Anthropic: KI-unterstuetztes Lernen brachte Devs 17 Punkte weniger ein, Junioren sollten zuerst solo coden

I built an AniList connector for Cognee so my AI agent remembers my anime watchlist

My anime watchlist lives in two places: my head (unreliable) and AniList (reliable, but dumb — it can't answer questions). I wanted a third option: an AI agent with actual memory of what I've watched, what I scored, and what I dropped. So for Mergetober I built a data-source connector that feeds a

dev.toSonntag 12:28 · 25.10.2 Min. Lesezeit
Bild: dev.to

My anime watchlist lives in two places: my head (unreliable) and AniList (reliable, but dumb — it can't answer questions). I wanted a third option: an AI agent with actual memory of what I've watched, what I scored, and what I dropped. So for Mergetober I built a data-source connector that feeds a public AniList list straight into Cognee's memory layer.

Honest version of how this started: I first proposed a MyAnimeList connector. Jikan — the unofficial MAL API — was down the entire time I tried to build against it. Timeouts, 504s, nothing. I patched a request throttle, wrote the tests, and still couldn't run the one thing that matters: a live smoke test against a real account.

So I closed that proposal (topoteretes/cognee#5505) and pivoted to AniList (proposal: topoteretes/cognee#5507). AniList has an official GraphQL API, no auth needed for public lists, and it answered on the first try. Lesson one of this build: pick the API that answers.

It mirrors the dlt-based pattern from my GitHub connector (PR #228): six files under packages/connector/anilist/, a dlt source that pages through a user's public list via the AniList GraphQL endpoint, and stable document IDs like anilist:21 so the same entry is the same node across syncs.

Two behaviors I'm proud of, because they're the ones a reviewer actually checks:

The test suite proves both: test_pipeline_sync_edit_forget runs two syncs and asserts the edited score landed and the deleted entry vanished. All 6 tests green.

Side note for anyone writing pipeline tests: my first version of this test failed in the most annoying way possible. The fake HTTP response in the test didn't include status_code, so the pipeline silently ingested zero rows and the table never materialized. When a dlt pipeline test fails on a missing table, suspect your fake before your connector.

The live smoke test ran against my own public AniList account ( luffyimu ). Output:

TOTAL ROWS: 1 anilist:21 | ONE PIECE Enter fullscreen mode Exit fullscreen mode Yes, one row — my public list is small right now, and obviously the first entry is ONE PIECE. But the connector doesn't care about list size. Once the list is in Cognee, the fun part starts: I can ask my agent things AniList itself can't answer.

That's the whole point of Cognee as a memory layer: the data was already public, but now it's rememberable — queryable by an agent in the context of everything else it knows.

PR is open: topoteretes/cognee-community#279. Same as the GitHub connector ( https://dev.to/one_piece/i-built-a-github-connector-for-cognee-so-my-ai-agent-remembers-all-my-repos-14h2 ) — waiting on maintainer review, no pressure. If you track anime on AniList and want your agent to remember your taste, the connector's there.

Repo: topoteretes/cognee-community · PR #279 · proposal #5507 (MyAnimeList pivot documented in closed #5505)

Quelle: dev.to (dev.to). Original öffnen