| # tools/string_tool.py | |
| from langchain.tools import BaseTool | |
| class StringTool(BaseTool): | |
| """ | |
| Операции над строками: реверс текста по префиксу 'reverse:'. | |
| """ | |
| name: str = "string_tool" | |
| description: str = "Apply string transformations: reverse text, case conversion, substring extraction, regex matching. Use for puzzles like reversed sentences, odd-even indexing, or any explicit string manipulation." | |
| def _run(self, text: str) -> str: | |
| if text.lower().startswith('reverse:'): | |
| s = text[len('reverse:'):].strip() | |
| return s[::-1] | |
| return f"Неизвестная операция: {text}" | |
| async def _arun(self, text: str) -> str: | |
| raise NotImplementedError("Async not supported.") | |