mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-08 15:05:17 +02:00
add enable_longterm_memory config
This commit is contained in:
parent
c0d5c031f8
commit
cf3b80d5f1
4 changed files with 18 additions and 4 deletions
|
|
@ -83,6 +83,8 @@ exp_pool:
|
|||
use_llm_ranker: true # Default is `true`, it will use LLM Reranker to get better result.
|
||||
collection_name: experience_pool # When `retrieval_type` is `chroma`, `collection_name` is the collection name in chromadb.
|
||||
|
||||
role_zero:
|
||||
enable_longterm_memory: false # Whether to use long-term memory.
|
||||
|
||||
azure_tts_subscription_key: "YOUR_SUBSCRIPTION_KEY"
|
||||
azure_tts_region: "eastus"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ from metagpt.configs.mermaid_config import MermaidConfig
|
|||
from metagpt.configs.omniparse_config import OmniParseConfig
|
||||
from metagpt.configs.redis_config import RedisConfig
|
||||
from metagpt.configs.role_custom_config import RoleCustomConfig
|
||||
from metagpt.configs.role_zero_config import RoleZeroConfig
|
||||
from metagpt.configs.s3_config import S3Config
|
||||
from metagpt.configs.search_config import SearchConfig
|
||||
from metagpt.configs.workspace_config import WorkspaceConfig
|
||||
|
|
@ -89,6 +90,9 @@ class Config(CLIParams, YamlModel):
|
|||
# Role's custom configuration
|
||||
roles: Optional[List[RoleCustomConfig]] = None
|
||||
|
||||
# RoleZero's configuration
|
||||
role_zero: Optional[RoleZeroConfig] = None
|
||||
|
||||
omniparse: Optional[OmniParseConfig] = None
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
7
metagpt/configs/role_zero_config.py
Normal file
7
metagpt/configs/role_zero_config.py
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
from pydantic import Field
|
||||
|
||||
from metagpt.utils.yaml_model import YamlModel
|
||||
|
||||
|
||||
class RoleZeroConfig(YamlModel):
|
||||
enable_longterm_memory: bool = Field(default=False, description="Whether to use long-term memory.")
|
||||
|
|
@ -92,7 +92,6 @@ class RoleZero(Role):
|
|||
command_rsp: str = "" # the raw string containing the commands
|
||||
commands: list[dict] = [] # commands to be executed
|
||||
memory_k: int = 200 # number of memories (messages) to use as historical context
|
||||
enable_longterm_memory: bool = True # whether to use longterm memory
|
||||
use_fixed_sop: bool = False
|
||||
requirements_constraints: str = "" # the constraints in user requirements
|
||||
use_summary: bool = True # whether to summarize at the end
|
||||
|
|
@ -168,14 +167,16 @@ class RoleZero(Role):
|
|||
|
||||
@model_validator(mode="after")
|
||||
def set_longterm_memory(self) -> "RoleZero":
|
||||
"""Set longterm memory.
|
||||
"""Set up long-term memory for the role if enabled in the configuration.
|
||||
|
||||
If enable_longterm_memory is True and longterm_memory is not set, set it.
|
||||
If `enable_longterm_memory` is True, set up long-term memory.
|
||||
The role name will be used as the collection name.
|
||||
"""
|
||||
|
||||
if self.enable_longterm_memory:
|
||||
enable_longterm_memory = bool(self.config.role_zero and self.config.role_zero.enable_longterm_memory)
|
||||
if enable_longterm_memory:
|
||||
self.rc.memory = RoleZeroLongTermMemory(collection_name=self.name.replace(" ", ""), memory_k=self.memory_k)
|
||||
logger.info(f"Long-term memory set for role '{self.name}'")
|
||||
|
||||
return self
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue