OceanLi
OceanLi
### Problem: Some components within `lionagi`, particularly tools like `ReaderTool` (which might accumulate state like `self.documents`), may hold internal instance state across multiple method calls. This pattern is problematic in...
### Problem: For `lionagi` to function as an application engine (especially with a persistent memory service or API), the state of core objects like `Session` and `Branch` (including messages, tools,...
### Problem: The `lionagi` library currently lacks a comprehensive test suite, making refactoring risky and hindering contributions. A solid testing foundation is essential for stability and maintainability, especially during a...
### Problem: While the library uses Pydantic, some models might still use deprecated v1 syntax (e.g., `@validator`) or might not fully leverage v2 features (e.g., `model_validator`, `computed_field`, updated `ConfigDict`). Ensuring...
### Problem: There is duplicated functionality, such as potentially overlapping logic between `libs/file/concat.py` and `libs/file/concat_files.py`. Additionally, large, monolithic utility modules like `utils.py` contain diverse, unrelated functions, making code hard to...
### Problem: Error handling in `lionagi` is inconsistent. Some areas might use broad `except Exception:` clauses, return `None` on error (like Issue #601 addressed), or raise generic standard exceptions without...
### Problem: Core operational functions like `operate`, `chat`, `ReAct`, `lcall`, `alcall`, etc., often have numerous parameters, making them cumbersome to call, harder to read, and difficult to maintain as options...
### Problem: Functions involving I/O (even after adapter refactoring in Plan 03/Issue #614) or potentially long-running computations (e.g., complex data processing, model inference waiting) might still block the asyncio event...
### Problem: Core logic modules within `lionagi` (e.g., `libs/file`, operations, potentially others) currently perform direct I/O operations like file system access (`Path.read/write_text`, `open()`) or network calls (`aiohttp`, etc.). This tightly...
### Problem: The library currently relies on global registries (`LION_CLASS_REGISTRY`, `LION_CLASS_FILE_REGISTRY`, `AdapterRegistry._adapters`) and associated dynamic filesystem scanning (`get_class_file_registry`, implicit `get_class` lookups). This introduces global state, making the library sensitive to...