Essentially the idea is allowing some way for Agents/Avatars to store information within themselves using LSL. This function would be primarily about communication between objects and not permanent storage.
key llSetAgentNote(string Security, string NoteName, string NoteValue, integer UnixTimestamp2Expire, integer IsPrivate) // only can be run by objects owned by the actual agent, maybe have a max note life of 1 week?
llRemoveAgentNote(key Note) // only can be run by objects owned by the actual agent
llRemoveAllAgentNotes() // only can be run by objects owned by the actual agent
llGetAgentNote(key Agent, string Security) // must be a non-private Note to be run by any script that is not owned by the agent.
llRequestPermissions would need PERMISSION_WRITE_NOTE added for more security.