Repository navigation
Release v0.9.1: Strands Agents Compatibility
🚀 Strands Agents Compatibility Release
This release adds full compatibility with Strands Agents by implementing missing @strands_tool decorators across all tool functions.
🔧 What's Fixed
Strands Agent Integration Issues
- Fixed: "unrecognized tool specification" errors when using
load_all_*helper functions - Root Cause: Missing
@strands_tooldecorators on 68 functions - Solution: Added decorators with graceful fallback when Strands not installed
Functions Updated
✅ Text Processing Tools (10 functions):
clean_whitespace,normalize_line_endings,strip_html_tagsnormalize_unicode,to_snake_case,to_camel_case,to_title_casesmart_split_lines,extract_sentences,join_with_oxford_comma
✅ Data Processing Tools (18 functions):
- JSON:
safe_json_serialize,safe_json_deserialize,validate_json_string - Validation:
validate_schema_simple,check_required_fields,validate_data_types_simple, etc. - Config:
read_yaml_file,write_yaml_file,read_toml_file,write_toml_file, etc.
✅ DateTime Operations (40 functions):
- All datetime functions across 6 modules now have
@strands_tooldecorators
🔌 Agent Framework Compatibility
| Framework | Status | Notes |
|---|---|---|
| Google ADK | ✅ Full Support | JSON-serializable signatures maintained |
| LangChain | ✅ Full Support | StructuredTool wrapping compatible |
| Strands Agents | ✅ NEW: Native @strands_tool decorators |
Helper functions now work properly |
| Custom Agents | ✅ Full Support | Backward compatibility preserved |
🧪 Quality Assurance
- ✅ 875 tests passing (94% coverage)
- ✅ 100% ruff compliance (formatting + linting)
- ✅ 100% mypy compliance (static type checking)
- ✅ Package builds successfully (tested with
uv build)
💡 Usage Example
import basic_open_agent_tools as boat
from strands import Agent
# Load tools using helper functions (now works with Strands!)
text_tools = boat.load_all_text_tools()
data_tools = boat.load_all_data_tools()
datetime_tools = boat.load_all_datetime_tools()
# Merge for agent use
agent_tools = boat.merge_tool_lists(text_tools, data_tools, datetime_tools)
# Create Strands agent
agent = Agent(tools=agent_tools)
agent("Clean up this text: ' hello world '")📦 Installation
pip install basic-open-agent-tools==0.9.1
# or with uv
uv add basic-open-agent-tools==0.9.1 🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com