Skip to content

v0.23.1

Choose a tag to compare

@mlikasam-askui mlikasam-askui released this 12 Feb 12:32
· 256 commits to main since this release
04e961b

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_dir now accepts str | Path (previously str only). Paths are normalized to absolute for consistent descriptions and behavior.
  • ReadFromFileTool: New optional encodings parameter (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 AskUiControllerClient are centralized in a _get_stub() helper, removing repeated assert blocks and clarifying error messages (e.g. "Call connect() 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-models instead of docs/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 (avoids UnicodeDecodeError for 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.
  • LoadImageTool documented with examples in its docstring and exported from askui.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