PrefectHQ / marvin

✨ Build AI interfaces that spark joy
https://askmarvin.ai
Apache License 2.0
5.33k stars 348 forks source link

Add autogen-like conversation capabilities between agents #609

Open biellls opened 1 year ago

biellls commented 1 year ago

First check

Describe the current behavior

Marvin currently has Agents but they are isolated from each other.

Describe the proposed behavior

Framework support for agent conversations to solve a task similar to https://github.com/microsoft/autogen.

Example Use

More complex tasks could be solved autonomously without the user interacting and without manually programming feedback into the agents.

Additional context

No response

lostmygithubaccount commented 1 year ago

I've been thinking about how to do this and was also reading through autogen yesterday, paper is helpful: https://arxiv.org/abs/2308.08155

this code looks particularly useful: https://github.com/microsoft/autogen/tree/main/autogen/agentchat

lostmygithubaccount commented 1 year ago

this is where I'm landing (built on top of Marvin, with Ibis for managing state/tables):

https://github.com/ibis-project/ibis-birdbrain/pull/25#issuecomment-1767557066

so the bot has access to its messages, which can contain attachments. attachments can be arbitrary Python objects (dataframes, charts, strings, etc.) and allow the bot to have a message (e.g. an instruction) and use attachments to run tasks on behalf of the user (that may or may not themselves use LLMs via Marvin). can also use LLMs to generate summaries/description, i.e. "this table is about order history"

zzstoatzz commented 1 year ago

thanks for the issue @biellls - this is something that's been on the backburner for me for a while. I've been doing some work on distributed state storage that I think could be something, will try to that shaped up asap.

in the meantime, feel free to share specifics on what you'd like to see

m1sta commented 1 year ago

Does the autogen model typically result in one 'orchestrator' agent using other agents as tools?