I don't want verbs like Insert to grab random nouns

A take matters into your own hands approach works, but is very tedious:

Understand "give [thing]" as giving it to.

To decide what action name is the prospective-action: (- action_to_be -)

For issuing the response text of the action processing internal rule response (H) when the prospective-action is giving it to action:
  say "[There]'s no one here to give anything to.[no line break]";

Definition: a person is handy if it is not the person asked and the person asked can touch it.

for supplying a missing second noun when an actor giving something to:
    if there is a handy person (called the recipient) begin;
      now the second noun is the recipient;
      say "(to [the recipient])";
    end if;

(Example shows the missing second noun case, but the same technique could be extended to the noun.)

I related an interesting approach by @OtisTDog here: Unlocking while empty-handed always disambiguates to something worn - #5 by Zed