I built several harnesses in different products over the last two years. Fully agree with you that doing it right is a rabbit hole. Certain system properties that you almost always want in a harness used within a SaaS (for example) are non-obvious at the start and require certain architectural choices. It's easy to start down a path and then find a gap a couple days before launch.

Async tool calls, having the agent wait indefinitely for a human response, and showing a form or questions to the user via a tool call are a few common capabilities that come up that a product manager might miss at first.

This is why I've been building Nvoken. LLM agnostic, ergonomic SDKs, flexible tool call patterns, tenant and user-aware budget enforcement, etc.

I'd really appreciate any and all feedback on this! It gives you some free tokens on signup and it's super quick to try.

https://nvoken.com

> Async tool calls, having the agent wait indefinitely for a human response, and showing a form or questions to the user via a tool call are a few common capabilities that come up that a product manager might miss at first.

All of this is specified in the ACP spec, so if you build your agents from that - you don't end up skipping features.

Also vital is proper prompt caching, tool design and some connection retry mechanism.

> All of this is specified in the ACP spec

Oh good reminder. I need to do that.

> Also vital is proper prompt caching, tool design and some connection retry mechanism.

prompt caching is weirder than i originally thought, and so variable across providers. Retry is easy, but can you explain more on tool design?