Skip to content
Kyle Stratis edited this page May 7, 2023 · 4 revisions

Welcome to the llm-knowledge-agent wiki!

This wiki will be used for notes, high-level architecture, etc. that will get broken down into specific issues.

Description

An agent to research a given topic by doing analytical and syntopic reading, summarizing and extracting main points, connecting them together, and forming new knowledge outputs such as zettels or evergreen notes.

Workflows to support

  1. Load existing knowledgebase into vector DB (Pinecone)
  2. Given article text and output template, generate a literature note, interact with user to refine it (more detail, skip some detail, etc.)
  3. Given article text and generated literature note, offer user to create evergreen notes/zettels, interact with user to refine them, based on detected assertions and main points
  4. Given generated zettels, connect with rest of knowledgebase. Semantic search across existing knowledgebase for similar notes, and either connect via backlinks or integrate into same note (probably based on a similarity threshold). Interact with user to refine(?)

Literature note

  • Short (~20% min. 3 sentences) summary
  • Assertions/arguments/points
  • Topic

Lower priority items that can be saved for after hackathon

  • User interaction for refinement
  • Assertion detection (assertions are more granular than main points)

Constraints

Architecture

This should consist of a main loop the coordinates several task agents (see BabyAGI).

Task agents

Note: These are tentative, some are less necessary than others

  • Ingest input text (issue)
    • Because we will be reusing the input text, store it in memory.
  • Ingest existing knowledgebase (issue)
    • Add all items to vector DB as embeddings for later search
  • Summarizer - summarizes text
  • Main point/argument finder - finds the main points or arguments of the article
  • Assertion finder - finds assertions of fact
  • Literature note generator - builds a literature note
  • Knowledge generator - generates zettels (how? Just use main points? Expand on them?)
  • Zettel connector - uses semantic similarity search to find related zettels and either add to them or use backlinking to connect them based on similarity

Future features

  • Instead of providing article text, provide URL or file (PDF, etc.)
  • Multimedia parsing
  • Support for larger media (books, etc.)
  • Outline + section summaries
  • Support for multiple note-taking tools