microsoft / project-oagents

Experimental AI Agents Framework
Creative Commons Attribution 4.0 International
235 stars 48 forks source link

Feature: Plans for adding memories to the dev team skills. #3

Open rysweet opened 1 year ago

rysweet commented 1 year ago

Some initial thoughts on adding memories.

Types of memories

I think we want the skills to be able to take advantage of multiple types of memories. This will allow for specialization, and for adding new types in the future, while keeping the collections topic focused and clean.

Memory collection for the Repo

Scope: per repository This collection would include

Shared Memory across the Skills

Scope: per repository (possibly per v-team - what if teams work on multiple repos?) This collection would be used to help coordinate actions across the v-team of AI skills:

Working memory within a single skill

Scope: per repository (possibly per v-team - what if teams work on multiple repos?) This collection would implement the working memory for an individual skill (or skill group) and include the original prompt and conversation history for that skill, as well as any data on the files that the skill may have modified or generated.

Specialization Memories

Scope: Any These would be special read-only curated collections designed to give an AI agent a set of memories around some specialized knowledge. Think of in the Matrix when Neo says "Now I know KungFu!". They would be wired up through configuration or code depending on the needs of the skill. eg:

Implementation

Some thoughts on how to do the implementation:

We would need to allocate a certain amount of the token budget to each memory type, but for instance if vector search of working memory doesn't yield relevant results we might give some of its budget to the Specializations.

We should probably build the memory initialization as a background service that starts and does a warm-up when the app starts.