agent schema ++