Inspiration

Supplier inventory imports often repeat the same small chores: recognize documented column aliases, trim allowed whitespace, normalize identifiers, and separate malformed or conflicting records. A small operations team should be able to inspect exceptions without losing the original evidence or redoing an entire import.

What it does

Import Review watches a Linux folder or processes one CSV. A Strands agent reads the supplier policy, inspects the file, proposes a documented mapping, validates every record, and exports accepted.csv plus a review queue. The manifest reconciles row counts and records input, policy and artifact hashes. Repeated content is skipped across restarts; failed or interrupted jobs require explicit retry.

The demonstration uses synthetic inventory. One record is accepted; a negative quantity and two conflicting records for the same SKU remain in review. The raw values and record numbers are preserved. No missing business values are invented.

How it is built

Python handles CSV parsing, exact decimal values, policy checks, immutable input snapshots and content fingerprints. Strands Agents SDK 1.54.0 supplies the actual model/tool loop. Five tools are bound to one job; they expose neither shell execution nor arbitrary file access. Completion depends on validated output artifacts, not model prose.

Both the single-job and inbox CLIs support Bedrock or a tool-capable OpenAI-compatible provider. The verified demonstration used an existing ZenoV gateway with devin-free/glm-5-2. That gateway is external infrastructure, not submitted as newly created code. Bedrock was configured but the development account rejected inference; no AWS deployment or AgentCore integration is claimed.

Challenges and verification

The first gateway request rejected an optional temperature setting. Omitting it allowed the standard Strands OpenAI adapter to complete the real workflow without changing message formatting. The production inbox command then completed a fresh job and skipped the duplicate on a second process run.

Twenty regression tests passed under Python 3.14. They cover policy and CSV errors, conflicting rows, repeat exports, workflow ordering, model request limits, provider configuration, and persistent inbox behavior. Actual synthetic tool transcripts and artifacts are included in the repository.

Impact and next steps

The intended value is less repeated manual cleanup and a smaller, traceable exception queue for inventory operators. This is a local prototype; no customer deployment or measured productivity result is claimed. Future work includes more supplier policy examples and a review interface for resolving exceptions.

Existing components and testing

New project implementation was created during the hackathon. Standard dependencies: Python, Strands, the OpenAI-compatible client, and Pillow/FFmpeg for the demonstration video. ZenoV and its upstream model are existing external services used only for inference; they are not part of the original project claim. No GeoDelta code is incorporated.

Install with the public README. The deterministic core and regression tests do not require an inference account. To test the actual agent, configure a tool-capable model provider and environment credentials using the documented CLI options. No private credentials are included in the repository.

Built With

Share this project:

Updates

Submission history