_(EXPERIMENTAL, RESEARCH IN PROGRESS)_
In 2023 AutoGen introduced [Teachable
Agents](https://microsoft.github.io/autogen/0.2/blog/2023/10/26/TeachableAgent/)
that users could teach new facts, preferences and skills. But teachable
agents were limited in several ways: They could only be
`ConversableAgent` subclasses, they couldn't learn a new skill unless
the user stated (in a single turn) both the task and how to solve it,
and they couldn't learn on their own. **Task-Centric Memory** overcomes
these limitations, allowing users to teach arbitrary agents (or teams)
more flexibly and reliably, and enabling agents to learn from their own
trial-and-error experiences.
This PR is large and complex. All of the files are new, and most of the
added components depend on the others to run at all. But the review
process can be accelerated if approached in the following order.
1. Start with the [Task-Centric Memory
README](https://github.com/microsoft/autogen/tree/agentic_memory/python/packages/autogen-ext/src/autogen_ext/task_centric_memory).
1. Install the memory extension locally, since it won't be in pypi until
it's merged. In the `agentic_memory` branch, and the `python/packages`
directory:
- `pip install -e autogen-agentchat`
- `pip install -e autogen-ext[openai]`
- `pip install -e autogen-ext[task-centric-memory]`
2. Run the Quickstart sample code, then immediately open the
`./pagelogs/quick/0 Call Tree.html` file in a browser to view the work
in progress.
3. Click through the web page links to see the details.
2. Continue through the rest of the main README to get a high-level
overview of the architecture.
3. Read through the [code samples
README](https://github.com/microsoft/autogen/tree/agentic_memory/python/samples/task_centric_memory),
running each of the 4 code samples while viewing their page logs.
4. Skim through the 4 code samples, along with their corresponding yaml
config files:
1. `chat_with_teachable_agent.py`
2. `eval_retrieval.py`
3. `eval_teachability.py`
4. `eval_learning_from_demonstration.py`
5. `eval_self_teaching.py`
6. Read `task_centric_memory_controller.py`, referring back to the
previously generated page logs as needed. This is the most important and
complex file in the PR.
7. Read the remaining core files.
1. `_task_centric_memory_bank.py`
2. `_string_similarity_map.py`
3. `_prompter.py`
8. Read the supporting files in the utils dir.
1. `teachability.py`
2. `apprentice.py`
3. `grader.py`
4. `page_logger.py`
5. `_functions.py`
* add subscription response
* fix send subscription response
* add register agent type response
* adding a test
* working on shaping up a test
* appsettins update for backend
* another appsettings
* fixup aspire hosting
* enable AGENT_HOST var from aspire
* add SendMessageAsync
* remove broken test
* test compiles and runs but is not (yet) correct
* subscriptions grain wireup.
* temp assert true.
* remove DI for SubscriptionGrain
* add xlang python code
* add subscription response
* rebond
* Update to .NET 9.0
* Fix Backend project SDK
* Package updates
* get RegisterAgentTypeRequest working
* fix exceptions
* add error handling for requests
* whoops
* send cloud event message type
* processing cloudevents
* trying tosend proto data - doesn't work
* trying to pack proto_data
* fix (#4238)
* pack the Message from agents_events
* format - not sure why these?
* format
* cleanup, error handling, xlang sample publishes messages that can be heard by .NET and vice versa
* format
* sdk version
* sdk vers
* net8
* back to net8
* remove netstandard2
* fix used
* remove unused
* more cleanup
* remove unneeded package
* I'm terrible at writing tests
* deserialize the cloud events and sent them as events
* comment
* cleanup
* await
* Delete dotnet/samples/Hello/Backend/Backend.csproj
unneeded change
* whoops
* merge main python back into here
* revert back to local
* revert some of the helloAgents changes.
* [.NET] Add happy path test for in-memory agent && Simplify HelloAgent example && some clean-up in extension APIs (#4227)
* add happy path test
* remove unnecessary namespace
* fix build error
* Update AgentBaseTests.cs
* revert changes
---------
* fix busted merge from main
* addressing review comments
* make internal
* case sensitive rename step 1
* case sensitive rename step 2
* remove!
---------
Co-authored-by: Peter Chang <petchang@microsoft.com>
Co-authored-by: Reuben Bond <reuben.bond@gmail.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Xiaoyun Zhang <bigmiao.zhang@gmail.com>