Skip to content

Release v0.9.1: Strands Agents Compatibility

Choose a tag to compare

@jwesleye jwesleye released this 11 Sep 17:41
· 111 commits to main since this release

🚀 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_tool decorators 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_tags
  • normalize_unicode, to_snake_case, to_camel_case, to_title_case
  • smart_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_tool decorators

🔌 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