Thanks for the pointers. This is what I came up with:

(defun abradd-agenda-tags-inherited (tags)
  (let (beg end m)
    (org-back-to-heading t)
    (setq beg (point)
          end (progn (outline-next-heading) (1- (point))))
    (goto-char beg)
    (and
      (not (member tags (org-get-tags-at)))
      end)))

I copied mostly from org-agenda-skip-if. It isn't very versatile, but works for now.

On 9 September 2017 at 01:36, Adam Porter <adam@alphapapa.net> wrote:
I think the function org-get-tags-at should also be helpful here.