Skip to content

Add bulk file_read and bulk memory_read abilities #29

@bradvin

Description

@bradvin

Problem

Multi-file and multi-memory retrieval currently requires many sequential tool calls, increasing round count and latency.

Dependencies

Implementation Plan

1) Bulk file read ability

Add file_read_bulk ability:

  • Input: paths[] (bounded array, e.g. max 25), optional max_chars_per_file.
  • Behavior: attempts each path independently using existing file-read resolution rules (agent file first, workspace fallback).

2) Bulk memory read ability

Add memory_read_bulk ability:

  • Input: array of targets, e.g.
    • type=long_term
    • type=short_term + optional date.
  • Optional max_chars_per_item.

3) Result envelope

Return deterministic per-item records:

  • input (requested key/path)
  • success
  • error (code/message when failed)
  • data (on success)

4) Limits and safety

  • Enforce request size and item-count limits.
  • Truncate large payloads per item and include truncation metadata.
  • Keep ability readonly/idempotent.

5) Reuse existing helpers

  • File operations: reuse existing file-read logic/helper paths.
  • Memory operations: reuse Memory_Helper read methods.

Acceptance Criteria

  • A single tool call can fetch multiple files/memory targets.
  • Partial failures do not fail the entire call.
  • Output ordering matches input ordering.
  • Bounded limits prevent oversized responses.

Test Plan

  • Unit tests:
    • all-success batch,
    • mixed success/failure batch,
    • limit enforcement,
    • deterministic ordering.
  • Tool declaration and mapping tests.

Out of Scope

  • Cross-item dedup or caching.
  • Streaming large binary payloads.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions