Update JarvisFlow.py
Browse files- JarvisFlow.py +25 -0
JarvisFlow.py
CHANGED
|
@@ -1,4 +1,29 @@
|
|
| 1 |
from flow_modules.Tachi67.AbstractBossFlowModule import AbstractBossFlow
|
| 2 |
|
| 3 |
class JarvisFlow(AbstractBossFlow):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
pass
|
|
|
|
| 1 |
from flow_modules.Tachi67.AbstractBossFlowModule import AbstractBossFlow
|
| 2 |
|
| 3 |
class JarvisFlow(AbstractBossFlow):
|
| 4 |
+
"""JarvisFlow is a flow module for the boss Jarvis. It inherits from AbstractBossFlow. (
|
| 5 |
+
https://huggingface.co/Tachi67/AbstractBossFlowModule/tree/main). Jarvis is a general purpose agent empowered by
|
| 6 |
+
multiple large language models and tools including a code interpreter, to take task commands in natural language,
|
| 7 |
+
and make plans, write and run code in an interactive fashion to finish the task.
|
| 8 |
+
|
| 9 |
+
The highlight of Jarvis is that it integrates 17 large language models, each of them prompted differently to achieve
|
| 10 |
+
seamless inter-model communication and model-user interaction. The structure of Jarvis ensures that it is much more
|
| 11 |
+
robust, flexible and memory-efficient than previous agents empowered by one single model.
|
| 12 |
+
What's more, Jarvis integrates modules to allow for llm's memory management, ensuring persisted mid-long term memory
|
| 13 |
+
and efficient short-term memory management, making its life duration much longer than single-modeled agents,
|
| 14 |
+
and more powerful, in that it is able to accumulate important knowledge e.g. code library. Jarvis can also take
|
| 15 |
+
response from the user and the environment (e.g. code execution result), and spontaneously re-plan and re-execute
|
| 16 |
+
to make the execution more robust and reliable.
|
| 17 |
+
|
| 18 |
+
*Configuration Parameters*:
|
| 19 |
+
- `memory_files` (dict): mem_name-memfile_path pairs. mem_name is the name of the memory (plan, logs, code_library),
|
| 20 |
+
and memfile_path is the path to the corresponding memory file. Configure this either in the .yaml file, or override
|
| 21 |
+
the `memory_files` entry when running the flow.
|
| 22 |
+
- `subflows_config` (dict): configs for subflows.
|
| 23 |
+
- `MemoryReading`: Module used to read in memory (https://huggingface.co/Tachi67/MemoryReadingFlowModule), output interface
|
| 24 |
+
configured so that it outputs the neeed memory.
|
| 25 |
+
- `Planner`: Module used to interactively write plans for Jarvis, the planner is implemented in the JarvisFlow.
|
| 26 |
+
- `CtrlExMem`: Module used to execute the plan in a controller-executor manner, and update the memory. It is implemented
|
| 27 |
+
in the JarvisFlow.
|
| 28 |
+
"""
|
| 29 |
pass
|