diff --git a/agents/matmaster_agent/sub_agents/structure_generate_agent/agent.py b/agents/matmaster_agent/sub_agents/structure_generate_agent/agent.py index 10b3566d..9d29e9e3 100644 --- a/agents/matmaster_agent/sub_agents/structure_generate_agent/agent.py +++ b/agents/matmaster_agent/sub_agents/structure_generate_agent/agent.py @@ -60,6 +60,7 @@ def __init__(self, llm_config: LLMConfig, name_suffix=''): sync_tools=[ 'add_hydrogens', 'generate_ordered_replicas', + 'remove_solvents', 'build_bulk_structure_by_template', 'build_bulk_structure_by_wyckoff', 'make_supercell_structure', diff --git a/agents/matmaster_agent/sub_agents/tools.py b/agents/matmaster_agent/sub_agents/tools.py index c9d75090..7a9b90de 100644 --- a/agents/matmaster_agent/sub_agents/tools.py +++ b/agents/matmaster_agent/sub_agents/tools.py @@ -1231,6 +1231,27 @@ 'bypass_confirmation': True, 'self_check': False, }, + 'remove_solvents': { + 'belonging_agent': StructureGenerateAgentName, + 'scene': [SceneEnum.STRUCTURE_GENERATE, SceneEnum.STRUCTURE_SANITIZE], + 'description': ( + 'What it does: Remove specified solvent molecules from a molecular crystal structure.\n' + 'When to use: When desolvating molecular crystals to obtain solvent-free or partially desolvated structures for analysis or simulation.\n' + 'Prerequisites / Inputs: CIF structure file containing identifiable solvent molecules; target solvent names or formulas.\n' + 'Outputs: Path to the desolvated structure file.\n' + 'Cannot do / Limits: Only removes whole solvent molecules that can be identified by composition; does not modify framework atoms or resolve disorder.\n' + 'Prior step: It is recommended to call get_structure_info first to inspect molecular components and confirm solvent identities.\n' + 'Cost / Notes: Low. Recommended to inspect molecular components first.' + ), + 'args_setting': ( + 'Parameter guidance: structure_path: Required. Input CIF file containing solvent molecules. ' + 'output_file: Required. Path to save the desolvated structure. ' + 'targets: Required. List of solvent names or chemical formulas to remove (e.g., "H2O", "DMF"). ' + ), + 'alternative': [], + 'bypass_confirmation': True, + 'self_check': False, + }, 'run_superconductor_optimization': { 'belonging_agent': SuperconductorAgentName, 'scene': [SceneEnum.SUPERCONDUCTOR],