Skip to main content
Blog

Why File Slots Make Multipart APIs Feel Native

  • January 13, 2026
  • 0 replies
  • 69 views

Kevin Mok
Forum|alt.badge.img+1

Welcome to the first issue of The Agent Builder — a lightweight update for the developers building agents. Editions will cover technical breakdowns, common patterns, actionable updates, and real builds.

 

What are File Slots?

Slots describe the inputs that your agent collects from a user to proceed with a task. File slots make it possible for your AI agents to collect files like expense receipts or invoice PDFs.

File Slots help AI agents escape JSON to become Multipart.

The core tension you may have come across: agent frameworks are JSON-first. LangChain, Semantic Kernel, even our old setup, everything flows through structured payloads. Files don't fit that model, so you rely on hacks:

  • Base64-in-JSON: Bloats ~33%, longer transfers, memory spike on decode
  • "Paste a link" strings: The backend fetches, there's auth headaches and timeout risks
  • Custom multipart builders: They're a boundary creep and third-party libs can leak resources

Multipart/form-data is the right way for binaries, they're efficient and stream without loading the whole file into memory. But wiring it up in a JSON world? Pain. No native support means custom request builders or workarounds in your prompts.

File slots bridges this by making it declarative.

 

  1. Pass your file slot to your HTTP action just like any other slot.
  2. Configure any JSON payload you want in the Body tab like normal
  3. Provide any files in the new File tab

That's it! No if/else is_file parameter. NO serialization hacks. Just native multipart HTTP actions.

And our secret sauce is a clever FileProcessor that temporarily downloads pointers to disk. Avoids base64 decoding spikes, keeps RAM low, and it's quick. You are streaming the file to your API, not loading it into memory first. This matters when you are handling concurrent uploads or anything larger than a kilobyte.

Instead of juggling uploads, storage, and file hops across services yourself, File Slots takes over the hard part. Map your slot as shown in the picture above, wire the JSON body, and the platform handles upload, extraction, and injection natively into the external API. No servers. No polling loops. No re-uploading.

The result is that file uploads feel as native as any other API call. Read more in the blog.

 

Quick Hits

  • User Consent Auth going into Preview → The AI assistant can now act on behalf of your users instead of relying on a service account. Less permissions, more compliance.
  • Dynamic Resolver Context Passing is live → Pass data from the data bank directly to slot resolvers. Sounds boring, but now your slots dependent on other slots will work. One lookup at a time, slot resolvers get it, done.
  • Multi-Value Slots shipped → Collect slots as a lists of items. No more prompting the slot to require a list of users, check a box and collect multiple values.

 

Join the Community

If you're building agents that handle files, attachments, or multi-step workflows, come hang in our community. Share what you've shipped, ask questions, and see what others are building. I'm there too—reply with what you're doing, what broke, or what you stole from this and made better. That's where the real conversations happen.

As a reminder, I'm hosting the last few Office Hours of the season (December 11th & December 18th) - sign-up here.

 

See you after the holidays.

 

— Kevin

Developer Advocate @ Moveworks | Agent Studio