basic-open-agent-tools


Namebasic-open-agent-tools JSON
Version 0.8.2 PyPI version JSON
download
home_pagehttps://github.com/open-agent-tools/basic-open-agent-tools
SummaryAn open foundational toolkit providing essential components for building AI agents with minimal dependencies for local (non-HTTP/API) actions.
upload_time2025-07-08 19:36:02
maintainerNone
docs_urlNone
authorOpen Agent Tools
requires_python>=3.8
licenseNone
keywords ai agents toolkit automation local-tools
VCS
bugtrack_url
requirements google-adk litellm ollama a2a-sdk basic-open-agent-tools openai transformers torch huggingface-hub requests beautifulsoup4 selenium aiohttp httpx pandas numpy python-dotenv pandas-stubs python-docx openpyxl markdown click typer rich pydantic pytest pytest-cov pytest-asyncio pytest-mock tabulate rouge-score ruff mypy ast-decompiler black flake8 loguru structlog pyyaml toml configparser pre-commit virtualenv pip-tools setuptools jupyter ipykernel notebook fastapi uvicorn sqlalchemy faiss-cpu
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # basic-open-agent-tools

An open foundational toolkit providing essential components for building AI agents with minimal dependencies for local (non-HTTP/API) actions. Designed with **agent-friendly type signatures** to eliminate "signature too complex" errors, while offering core utilities that developers can easily integrate into their agents to avoid excess boilerplate.

## Installation

```bash
pip install basic-open-agent-tools
```

Or with UV:
```bash
uv add basic-open-agent-tools
```

## Key Features

✨ **Agent-Friendly Design**: All functions use simplified type signatures to prevent "signature too complex" errors when used with AI agent frameworks

🚀 **Minimal Dependencies**: Pure Python implementation with no external dependencies for core functionality

🔧 **Modular Architecture**: Load only the tools you need with category-specific helpers

## Quick Start

```python
import logging
import warnings
from dotenv import load_dotenv
from google.adk.agents import Agent
from google.adk.models.lite_llm import LiteLlm

import basic_open_agent_tools as boat

# Load tools by category
fs_tools = boat.load_all_filesystem_tools()    # 18 functions
text_tools = boat.load_all_text_tools()       # 10 functions

# Merge for agent use (automatically deduplicates)
agent_tools = boat.merge_tool_lists(fs_tools, text_tools)


load_dotenv()

agent_instruction = """
**INSTRUCTION:**
You are FileOps, a specialized file and directory operations sub-agent.
Your role is to execute file operations (create, read, update, delete, move, copy) and directory operations (create, delete) with precision.
**Guidelines:**
- **Preserve Content:** Always read full file content before modifications; retain all original content except targeted changes.
- **Precision:** Execute instructions exactly, verify operations, and handle errors with specific details.
- **Communication:** Provide concise, technical status reports (success/failure, file paths, operation type, content preservation details).
- **Scope:** File/directory CRUD, move, copy, path validation. No code analysis.
- **Confirmation:** Confirm completion to the senior developer with specific details of modifications.
"""

logging.basicConfig(level=logging.ERROR)
warnings.filterwarnings("ignore")

file_ops_agent = Agent(
    model=LiteLlm(model="anthropic/claude-3-5-haiku-20241022"),
    name="FileOps",
    instruction=agent_instruction,
    description="Specialized file and directory operations sub-agent for the Python developer.",
    tools=agent_tools,
)

"""
The above would load:

File and Directory Operations:
    read_file_to_string
    write_file_from_string
    append_to_file
    list_directory_contents
    create_directory
    delete_file
    delete_directory
    move_file
    copy_file
    get_file_info
    file_exists
    directory_exists
    get_file_size
    is_empty_directory
    list_all_directory_contents
    generate_directory_tree
    validate_path
    validate_file_content

Text Processing Tools:
    clean_whitespace
    normalize_line_endings
    strip_html_tags
    normalize_unicode
    to_snake_case
    to_camel_case
    to_title_case
    smart_split_lines
    extract_sentences
    join_with_oxford_comma

"""

```

## Documentation

- **[Getting Started](docs/getting-started.md)** - Installation and quick start guide
- **[Examples](docs/examples.md)** - Detailed usage examples and patterns
- **[Contributing](docs/contributing.md)** - Development setup and guidelines

## Current Features

### File System Tools ✅ (18 functions)
- File operations (read, write, append, delete, copy, move)
- Directory operations (create, list, delete, tree visualization)
- File information and existence checking
- Path validation and error handling

### Text Processing Tools ✅ (10 functions)
- Text cleaning and normalization
- Case conversion utilities (snake_case, camelCase, Title Case)
- Smart text splitting and sentence extraction
- HTML tag removal and Unicode normalization

### Data Tools ✅ (28+ functions with Agent-Friendly Signatures)
**Enhanced for AI Agents**: All functions use simplified type signatures for maximum compatibility
- **Structure Tools**: `flatten_dict_simple`, `merge_dicts_simple`, `get_nested_value_simple`
- **CSV Tools**: `read_csv_simple`, `write_csv_simple` with basic types
- **Validation Tools**: `validate_schema_simple`, `validate_data_types_simple`
- **JSON & Config**: Safe serialization with compression and validation
- **Transform Tools**: Data cleaning and normalization functions

**Additional Data Modules** 📋:
- Object serialization and configuration files (YAML, TOML, INI)
- Binary data processing and archive handling
- Advanced transformation and streaming utilities

**✨ Agent Compatibility**: All data functions use basic Python types (str, dict, list, bool) instead of complex Union types or custom type aliases, ensuring seamless integration with AI agent frameworks.

### Future Modules 🚧
- **Network Tools** - HTTP utilities, API helpers
- **System Tools** - Process management, system information  
- **Crypto Tools** - Hashing, encoding, basic cryptographic utilities
- **Utilities** - Development and debugging helpers

## Contributing

We welcome contributions! Please see our [Contributing Guide](docs/contributing.md) for development setup, coding standards, and pull request process.




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/open-agent-tools/basic-open-agent-tools",
    "name": "basic-open-agent-tools",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ai, agents, toolkit, automation, local-tools",
    "author": "Open Agent Tools",
    "author_email": "Open Agent Tools <unseriousai@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/be/b5/6a4a5bad3cb16aee0ab25c9472666ea5eb8ea03b11efbf31e09fb25d5943/basic_open_agent_tools-0.8.2.tar.gz",
    "platform": null,
    "description": "# basic-open-agent-tools\n\nAn open foundational toolkit providing essential components for building AI agents with minimal dependencies for local (non-HTTP/API) actions. Designed with **agent-friendly type signatures** to eliminate \"signature too complex\" errors, while offering core utilities that developers can easily integrate into their agents to avoid excess boilerplate.\n\n## Installation\n\n```bash\npip install basic-open-agent-tools\n```\n\nOr with UV:\n```bash\nuv add basic-open-agent-tools\n```\n\n## Key Features\n\n\u2728 **Agent-Friendly Design**: All functions use simplified type signatures to prevent \"signature too complex\" errors when used with AI agent frameworks\n\n\ud83d\ude80 **Minimal Dependencies**: Pure Python implementation with no external dependencies for core functionality\n\n\ud83d\udd27 **Modular Architecture**: Load only the tools you need with category-specific helpers\n\n## Quick Start\n\n```python\nimport logging\nimport warnings\nfrom dotenv import load_dotenv\nfrom google.adk.agents import Agent\nfrom google.adk.models.lite_llm import LiteLlm\n\nimport basic_open_agent_tools as boat\n\n# Load tools by category\nfs_tools = boat.load_all_filesystem_tools()    # 18 functions\ntext_tools = boat.load_all_text_tools()       # 10 functions\n\n# Merge for agent use (automatically deduplicates)\nagent_tools = boat.merge_tool_lists(fs_tools, text_tools)\n\n\nload_dotenv()\n\nagent_instruction = \"\"\"\n**INSTRUCTION:**\nYou are FileOps, a specialized file and directory operations sub-agent.\nYour role is to execute file operations (create, read, update, delete, move, copy) and directory operations (create, delete) with precision.\n**Guidelines:**\n- **Preserve Content:** Always read full file content before modifications; retain all original content except targeted changes.\n- **Precision:** Execute instructions exactly, verify operations, and handle errors with specific details.\n- **Communication:** Provide concise, technical status reports (success/failure, file paths, operation type, content preservation details).\n- **Scope:** File/directory CRUD, move, copy, path validation. No code analysis.\n- **Confirmation:** Confirm completion to the senior developer with specific details of modifications.\n\"\"\"\n\nlogging.basicConfig(level=logging.ERROR)\nwarnings.filterwarnings(\"ignore\")\n\nfile_ops_agent = Agent(\n    model=LiteLlm(model=\"anthropic/claude-3-5-haiku-20241022\"),\n    name=\"FileOps\",\n    instruction=agent_instruction,\n    description=\"Specialized file and directory operations sub-agent for the Python developer.\",\n    tools=agent_tools,\n)\n\n\"\"\"\nThe above would load:\n\nFile and Directory Operations:\n    read_file_to_string\n    write_file_from_string\n    append_to_file\n    list_directory_contents\n    create_directory\n    delete_file\n    delete_directory\n    move_file\n    copy_file\n    get_file_info\n    file_exists\n    directory_exists\n    get_file_size\n    is_empty_directory\n    list_all_directory_contents\n    generate_directory_tree\n    validate_path\n    validate_file_content\n\nText Processing Tools:\n    clean_whitespace\n    normalize_line_endings\n    strip_html_tags\n    normalize_unicode\n    to_snake_case\n    to_camel_case\n    to_title_case\n    smart_split_lines\n    extract_sentences\n    join_with_oxford_comma\n\n\"\"\"\n\n```\n\n## Documentation\n\n- **[Getting Started](docs/getting-started.md)** - Installation and quick start guide\n- **[Examples](docs/examples.md)** - Detailed usage examples and patterns\n- **[Contributing](docs/contributing.md)** - Development setup and guidelines\n\n## Current Features\n\n### File System Tools \u2705 (18 functions)\n- File operations (read, write, append, delete, copy, move)\n- Directory operations (create, list, delete, tree visualization)\n- File information and existence checking\n- Path validation and error handling\n\n### Text Processing Tools \u2705 (10 functions)\n- Text cleaning and normalization\n- Case conversion utilities (snake_case, camelCase, Title Case)\n- Smart text splitting and sentence extraction\n- HTML tag removal and Unicode normalization\n\n### Data Tools \u2705 (28+ functions with Agent-Friendly Signatures)\n**Enhanced for AI Agents**: All functions use simplified type signatures for maximum compatibility\n- **Structure Tools**: `flatten_dict_simple`, `merge_dicts_simple`, `get_nested_value_simple`\n- **CSV Tools**: `read_csv_simple`, `write_csv_simple` with basic types\n- **Validation Tools**: `validate_schema_simple`, `validate_data_types_simple`\n- **JSON & Config**: Safe serialization with compression and validation\n- **Transform Tools**: Data cleaning and normalization functions\n\n**Additional Data Modules** \ud83d\udccb:\n- Object serialization and configuration files (YAML, TOML, INI)\n- Binary data processing and archive handling\n- Advanced transformation and streaming utilities\n\n**\u2728 Agent Compatibility**: All data functions use basic Python types (str, dict, list, bool) instead of complex Union types or custom type aliases, ensuring seamless integration with AI agent frameworks.\n\n### Future Modules \ud83d\udea7\n- **Network Tools** - HTTP utilities, API helpers\n- **System Tools** - Process management, system information  \n- **Crypto Tools** - Hashing, encoding, basic cryptographic utilities\n- **Utilities** - Development and debugging helpers\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](docs/contributing.md) for development setup, coding standards, and pull request process.\n\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "An open foundational toolkit providing essential components for building AI agents with minimal dependencies for local (non-HTTP/API) actions.",
    "version": "0.8.2",
    "project_urls": {
        "Documentation": "https://github.com/open-agent-tools/basic-open-agent-tools#readme",
        "Homepage": "https://github.com/open-agent-tools/basic-open-agent-tools",
        "Issues": "https://github.com/open-agent-tools/basic-open-agent-tools/issues",
        "Repository": "https://github.com/open-agent-tools/basic-open-agent-tools"
    },
    "split_keywords": [
        "ai",
        " agents",
        " toolkit",
        " automation",
        " local-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d4142a5bf12d1f1091c231db5f29a28e0da3545410e1a7537ad021051fe2688",
                "md5": "bb0ee8fbe258700a32c7c60ee7716d81",
                "sha256": "e49a01c6b679fe69445034b8e9268c577cba611996722a1a057f81bf46a12f07"
            },
            "downloads": -1,
            "filename": "basic_open_agent_tools-0.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bb0ee8fbe258700a32c7c60ee7716d81",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 38471,
            "upload_time": "2025-07-08T19:36:01",
            "upload_time_iso_8601": "2025-07-08T19:36:01.655523Z",
            "url": "https://files.pythonhosted.org/packages/5d/41/42a5bf12d1f1091c231db5f29a28e0da3545410e1a7537ad021051fe2688/basic_open_agent_tools-0.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "beb56a4a5bad3cb16aee0ab25c9472666ea5eb8ea03b11efbf31e09fb25d5943",
                "md5": "1155f223717917be52a010122fe43cc1",
                "sha256": "af1cfa00a4cebeddf988667c4863648c0284a775231f515dfcf7718e8c661364"
            },
            "downloads": -1,
            "filename": "basic_open_agent_tools-0.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1155f223717917be52a010122fe43cc1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 32774,
            "upload_time": "2025-07-08T19:36:02",
            "upload_time_iso_8601": "2025-07-08T19:36:02.754466Z",
            "url": "https://files.pythonhosted.org/packages/be/b5/6a4a5bad3cb16aee0ab25c9472666ea5eb8ea03b11efbf31e09fb25d5943/basic_open_agent_tools-0.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 19:36:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "open-agent-tools",
    "github_project": "basic-open-agent-tools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "google-adk",
            "specs": []
        },
        {
            "name": "litellm",
            "specs": []
        },
        {
            "name": "ollama",
            "specs": []
        },
        {
            "name": "a2a-sdk",
            "specs": []
        },
        {
            "name": "basic-open-agent-tools",
            "specs": []
        },
        {
            "name": "openai",
            "specs": []
        },
        {
            "name": "transformers",
            "specs": []
        },
        {
            "name": "torch",
            "specs": []
        },
        {
            "name": "huggingface-hub",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "beautifulsoup4",
            "specs": []
        },
        {
            "name": "selenium",
            "specs": []
        },
        {
            "name": "aiohttp",
            "specs": []
        },
        {
            "name": "httpx",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pandas-stubs",
            "specs": []
        },
        {
            "name": "python-docx",
            "specs": []
        },
        {
            "name": "openpyxl",
            "specs": []
        },
        {
            "name": "markdown",
            "specs": []
        },
        {
            "name": "click",
            "specs": []
        },
        {
            "name": "typer",
            "specs": []
        },
        {
            "name": "rich",
            "specs": []
        },
        {
            "name": "pydantic",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "pytest-asyncio",
            "specs": [
                [
                    ">=",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "pytest-mock",
            "specs": []
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "rouge-score",
            "specs": [
                [
                    ">=",
                    "0.1.2"
                ]
            ]
        },
        {
            "name": "ruff",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "ast-decompiler",
            "specs": []
        },
        {
            "name": "black",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "loguru",
            "specs": []
        },
        {
            "name": "structlog",
            "specs": []
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "toml",
            "specs": []
        },
        {
            "name": "configparser",
            "specs": []
        },
        {
            "name": "pre-commit",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "virtualenv",
            "specs": []
        },
        {
            "name": "pip-tools",
            "specs": []
        },
        {
            "name": "setuptools",
            "specs": []
        },
        {
            "name": "jupyter",
            "specs": []
        },
        {
            "name": "ipykernel",
            "specs": []
        },
        {
            "name": "notebook",
            "specs": []
        },
        {
            "name": "fastapi",
            "specs": []
        },
        {
            "name": "uvicorn",
            "specs": []
        },
        {
            "name": "sqlalchemy",
            "specs": []
        },
        {
            "name": "faiss-cpu",
            "specs": []
        }
    ],
    "lcname": "basic-open-agent-tools"
}
        
Elapsed time: 0.55893s