Чтобы легче понять разницу между глаголами あげる и くれる (давать), нужно понять один базовый принцип в японском языке, который называется 内と外 — свой-чужой, который описывает отношения между людьми по отношению к говорящему.
内(ウチ) — это “свои” люди, близкие по отношению к говорящему. К этому классу относятся сам говорящий, его семья, друзья и другие близкие люди.
外(ソト)— это все остальные. Например, учитель, полицейский, коллега по работе, просто незнакомец и так далее.