Для Cython A [1] будет объектом python. Если вы хотите иметь возможность использовать cdef, используйте автоматическое приведение к вызывающей стороне:
cdef public caller(self):
cdef Agents agent
print "caller"
agent = A[1]
agent.called()
Вы можете проверить с помощью режима -a в cython, чтобы узнать, используете ли вы Python или C для кода каждой строки. (cython -a yourfile.pyx -> сгенерирует yourfile.html, который вы можете просмотреть и проверить).