v0.23.1
Release Notes - v0.23.1
🎉 Overview
This release adds the new LoadImageTool, improves Tool Store tools with flexible paths and encodings, introduces unique instance identifiers for tools, renames the project to AskUI Python SDK, and includes refactoring and documentation fixes. With 44 files changed, 353 additions, and 271 deletions, this is a focused update building on the v0.23.0 foundation.
✨ New Features
LoadImageTool
New universal tool for loading images from the filesystem:
- Location:
askui.tools.store.universal.LoadImageTool - Loads images from a configurable base directory for analysis, comparison, or visual inspection
- Supports common formats (PNG, JPEG etc.)
- Use cases: analyzing screenshots, comparing visual elements, verifying image content, providing visual context during execution
Use with agent.act() or via act_tools on the agent constructor.
Unique Tool Instance Identifiers
Tools now get unique instance identifiers so that multiple instances of the same tool (e.g. different base_dir) can be used together without name collisions. Tool names are derived from base name, optional tags, and a unique ID, and are sanitized and truncated to 64 characters for model compatibility.
🔧 Improvements
Tool Store – File Tools Flexibility
- ListFilesTool, ReadFromFileTool, WriteToFileTool:
base_dirnow acceptsstr | Path(previouslystronly). Paths are normalized to absolute for consistent descriptions and behavior. - ReadFromFileTool: New optional
encodingsparameter (default:["utf-8", "latin-1"]) to try multiple encodings when reading text files. Improves handling of files that are not UTF-8. - WriteToFileTool: Base directory is no longer created in
__init__; creation happens on write, aligning behavior with other file tools.
AskUI Controller Refactoring
- Stub checks in
AskUiControllerClientare centralized in a_get_stub()helper, removing repeated assert blocks and clarifying error messages (e.g. "Callconnect()first").
Documentation and Branding
- Project and docs renamed from "AskUI Vision Agent" to AskUI Python SDK (README, docs, and HTML report title).
- Fixed Custom Models link in README to point to
docs/using-models.md#using-custom-modelsinstead ofdocs/custom-models.md. - Doc and README references updated for consistency.
🐛 Bug Fixes
- Fixed stub initialization error message in AskUI controller ("Connect" → "connect()").
- Improved file reading robustness via configurable encodings in
ReadFromFileTool(avoidsUnicodeDecodeErrorfor non-UTF-8 files when an alternative encoding is suitable).
📚 Documentation
- README and docs updated for AskUI Python SDK naming and correct Custom Models link.
LoadImageTooldocumented with examples in its docstring and exported fromaskui.tools.store.universal.
📊 Statistics
- 44 files changed
- 353 lines added
- 271 lines removed
- Net change: +82 lines
🚀 New Tools
Using LoadImageTool
from askui import VisionAgent
from askui.tools.store.universal import LoadImageTool
with VisionAgent(act_tools=[LoadImageTool(base_dir="./images")]) as agent:
agent.act("Describe the logo image called './images/logo.png'")Or per-act:
with VisionAgent() as agent:
agent.act(
"Describe the logo image called './images/logo.png'",
tools=[LoadImageTool(base_dir="./images")]
)📝 Full Changelog
For a complete list of changes, see the git log.
Upgrade: pip install --upgrade askui
Documentation: docs.askui.com