Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
13point5 committed Jun 15, 2024
1 parent 785156d commit 76cc3c0
Show file tree
Hide file tree
Showing 6 changed files with 188 additions and 664 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
# Aggregated Chat Analysis for Personalised Teacher Assistance - Essay Feedback
# 🤖 🤝 Multi LLM Agent Discovery, Structured Knowledge generation, and Collaboration

As students use platforms like Khanmigo and MagicSchool.ai for tasks like getting feedback on their essays and "chat" with
the tool to improve their learning, it will quickly become difficult for teachers to keep up with the volume of chat data.
the tool to improve their learning, it will quickly become difficult for teachers to keep up with the volume of chat data to personalise instruction.

This project aims to experiment with methods to aggregate chat data to provide teachers with data to improve instruction.
In this repo we experiment with ways to store and aggregate structured knowledge from LLM Agents, and for agents to discover other agents by generating a thought to personalise their output.

For the first experiment we will focus on a tool that gives feedback on essays.
The [Agent Discovery](./agent-discovery-v1/agent-discovery.ipynb) notebook shows how student facing agents such as essay feedback providers can store knowledge about students that can be used by teacher facing agents such as a lesson plan generator to personalise the output.

This aggregated feedback is then used to demonstrate the personalisation for a **Lesson Plan Generator Tool** that will be used by a Teacher.
[ClassroomLM](https://classroom-lm.vercel.app/) is a WIP that will demonstrate the use of this experiment and here is the [frontend](https://github.com/13point5/classroom-lm) repo.

[ClassroomLM](https://classroom-lm.vercel.app/) is a WIP and here is the [frontend](https://github.com/13point5/classroom-lm) repo.
## Architecture

## Data
### 1. Multi Agent Discovery and Collaboration

I used ChatGPT to generate the student essays and follow-up chat data. I used MagicSchool.ai's tool for providing feedback on essays for the AI messages.
![multi agent architecture](./agent-architecture.png)

## Architecture
### 2. Knowledge Aggregation

![Architecture](./architecture.png)
![knowledge aggregation architecture](./architecture.png)

I've used a simple `Evaluation` data model to analyse **ONLY** the AI messages. I know that this approach has drawbacks but I want to keep it simple for now to see if it's remotely useful.

## Data

I used ChatGPT to generate the student essays and follow-up chat data. I used MagicSchool.ai's tool for providing feedback on essays for the AI messages.

### Evaluation Data Model

For each of the criteria below, we extract the following data:
Expand Down Expand Up @@ -62,7 +66,3 @@ For each of the criteria below, we extract the following data:
```bash
poetry install
```

## Usage

The only experiment I have is in `experiment.ipynb` which is self-explanatory.
Binary file added agent-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 27 additions & 2 deletions agent-discovery-v1/agent-discovery.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,35 @@
"source": [
"# Multi Agent Discovery, Knowledge generation, and Collaboration for Education\n",
"\n",
"This notebook shows how AI Agents for Education that are used by students and teachers can:\n",
"This notebook shows how LLM based AI Agents for Education that are used by students and teachers can:\n",
"1. Store aggregated structured knowledge about students\n",
"2. Discover other agents by generating a `thought`\n",
"3. Collaborate by using the knowledge of other agents to `personalize` the output"
"3. Collaborate by using the knowledge of other agents to `personalize` the output\n",
"\n",
"## Architecture\n",
"![agent architecture](../agent-architecture.png)\n",
"\n",
"## Components:\n",
"### 1. `StudentAgent`\n",
"A `StudentAgent` is an agent designed to help students with specific expertise such as providing feedback on essays and a math tutor.\n",
"\n",
"These agents also use a `knowledge_class` to store aggregated structured knowledge about students through their interactions.\n",
"\n",
"A `knowledge_class` is a Pydantic model that describes the schema of knowledge to extract from the Agent's responses. This approach limits the quality of knowledge extracted but the purpose of this notebook is to demonstrate a possibility.\n",
"\n",
"Each `StudentAgent` also stores an automatically generated `knowledge_description` which describes the knowledge stored in plain text which will be used by other Agents to discover this agent.\n",
"\n",
"### 2. `StudentAgentStore`\n",
"\n",
"The `StudentAgentStore` is meant to resemble a database that stores all the agents and a vector database that stores the `knowledge_description`s for all agents for discovery.\n",
"\n",
"### 3. `TeacherAgent`\n",
"\n",
"A `TeacherAgent` is an agent designed to help teachers with tasks like generating a lesson plan or a worksheet.\n",
"\n",
"These agents `think` before responding so that they can determine if they need knowledge about students in a particular area to `personalise` the output.\n",
"\n",
"When they generate a thought describing the knowledge they need, they query the `StudentAgentStore` to get a relevant agent and ask the agent for the structured knowledge it has about students and uses it to assist teachers with their queries."
]
},
{
Expand Down
Loading

0 comments on commit 76cc3c0

Please sign in to comment.